Differenze tra classe astratta e interfaccia in Java
In Java, l’astrazione si ottiene utilizzando classi astratte e interfacce. Entrambi contengono metodi astratti che una classe figlio o una classe di implementazione deve implementare. Di seguito sono riportate le importanti differenze tra la classe astratta e un’interfaccia.
Sr. n., | Chiave | Classe Astratta | Interfaccia |
---|---|---|---|
1 | Metodi | classe Astratta può avere una astratta così come i metodi concreti. | L’interfaccia può avere solo metodi astratti. Java 8 in poi, può avere metodi predefiniti e statici., |
2 | Multiple Inheritance | Multiple Inheritance is not supported. | Interface supports Multiple Inheritance. |
3 | Supported Variables | final, non-final, static and non-static variables supported. | Only static and final variables are permitted., |
4 | Implementation | Abstract class can implement an interface. | Interface can not implement an interface, it can extend an interface. |
5 | Keyword | Abstract class declared using abstract keyword. | Interface is declared using interface keyword., |
6 | Ereditarietà | La classe astratta può ereditare un’altra classe usando la parola chiave extends e implementare un’interfaccia. | Interfaccia può ereditare solo un inteface. |
7 | Ereditarietà | La classe astratta può essere ereditata usando la parola chiave extends. | L’interfaccia può essere implementata solo utilizzando la parola chiave implements., |
8 | Access | Abstract class can have any type of members like private, public. | Interface can only have public members. |
Example of Abstract Class vs Interface
JavaTester.java
Output
Tiger eatsLion eats
Published on 26-Nov-2019 14:37:07
Advertisements