Astuce Java #1 : Multi-héritage d'interface

Encore une question existentielle née d'un débat passionné entre Colin et moi. La question cette fois-ci :
Est-ce qu'une interface peut hériter de plusieurs autres interfaces ?
Colin

Question justifiée par les faits suivants :
  • Une classe ne peut hériter que d'une seule autre classe
  • Une classe peut implémenter plusieurs interfaces
  • Une interface hérite d'une autre interface, et n'implémente pas une autre interface

Il semblerais logique que oui, une interface puisse hériter de plusieurs autres interfaces.

Après tests, la logique l'emporte. Une interface peut hériter de plusieurs autres interfaces. Le code suivant est entièrement valide :
package multiextendsinterface;

interface A { public void a(); }
interface B { public void b(); }
interface C extends A, B { public void c(); }

public class Main {
    public static void main(String[] args) {
        C c = new C() {
            public void a() { System.out.println("a"); }
            public void b() { System.out.println("b"); }
            public void c() { System.out.println("c"); }
        };
        c.a();
        c.b();
        c.c();
    }
}
Et la sortie sera la suivante :
a
b
c

A noter dans mon calepin de "choses à se souvenir" : une interface peut bel et bien hériter de plusieurs autres interfaces.

Permalink  |  Commentaires (1)


Comments:

kk

Posted by jj on avril 29, 2010 at 10:00 PM CEST #

Post a Comment:
  • HTML Syntax: Allowed