Can an interface extend multiple interfaces in Java?

Prateek picture Prateek · Oct 23, 2013 · Viewed 120.7k times · Source

Can an interface extend multiple interfaces in Java? This code appears valid in my IDE and it does compile:

interface Foo extends Runnable, Set, Comparator<String> { }

but I had heard that multiple inheritance was not allowed in Java. Why does there appear to be an exception for interfaces?

Answer

Suresh Atta picture Suresh Atta · Oct 23, 2013

Yes, you can do it. An interface can extend multiple interfaces, as shown here:

interface Maininterface extends inter1, inter2, inter3 {  
  // methods
}

A single class can also implement multiple interfaces. What if two interfaces have a method defining the same name and signature?

There is a tricky point:

interface A {
    void test();
}

interface B {
    void test();
}

class C implements A, B {

    @Override
    public void test() {

    }     

}

Then single implementation works for both :).

Read my complete post here:

http://codeinventions.blogspot.com/2014/07/can-interface-extend-multiple.html