-
Ogni classe estende (extends)
una sola altra classe (Object
se non specificata);
-
Una interfaccia può estendere (extends)
una o più interfacce:
public interface
<Int>
extends
<Int-1>,
<Int-2>, ... {
...
} |
La gerarchia di ereditarietà singola delle classi
e la gerarchia di ereditarietà multipla delle interfacce sono completamente
disgiunte.
-
Una classe può implemetare (implements)
una o più interfacce:
public class <nomeClasse>
extends
<nomeSuperClasse>
implements
<Int-1>, <Int-2>, ..., <Int-n>
{
....
}
|
-
In questo caso <nomeClasse>
deve fornire una realizzazione per tutti i metodi delle interfacce <Int-1>,
<Int-2>, ... che implementa, nonché per i metodi
di eventuali super-interfacce da cui queste ereditano.
-
Se <nomeClasse>
non fornisce un metodo di una interfaccia che implementa, concettualmente
questo metodo rimane astratto in <nomeClasse>,
e quindi la classe deve essere dichiarata astratta.
|