Różnice między klasą abstrakcyjną a interfejsem w Javie
w Javie abstrakcja jest osiągana za pomocą klas abstrakcyjnych i interfejsów. Obie zawierają abstrakcyjne metody, które Klasa potomna lub klasa implementująca musi zaimplementować. Poniżej przedstawiono istotne różnice między klasą abstrakcyjną a interfejsem.
, | Key | Abstract Class | interfejs |
---|---|---|---|
1 | obsługiwane metody | klasa abstrakcyjna może mieć zarówno metody abstrakcyjne, jak i konkretne. | interfejs może mieć tylko metody abstrakcyjne. Java 8, może mieć zarówno metody domyślne, jak i statyczne., |
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 | dziedziczenie | klasa abstrakcyjna może dziedziczyć inną klasę używając słowa kluczowego extends i zaimplementować interfejs. | interfejs może dziedziczyć tylko interfejs inteface. |
7 | dziedziczenie | klasa abstrakcyjna może być dziedziczona za pomocą słowa kluczowego extends. | interfejs może być zaimplementowany tylko przy użyciu słowa kluczowego 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