– Cześć, Amigo! Bilaabo zdradzi Ci, jakie są różnice między klasą abstrakcyjną a interfejsem. Trochę ich jest.
Klasa abstrakcyjna | Interfejs |
---|---|
Dziedziczenie | |
Klasa abstrakcyjna może dziedziczyć tylko jedną klasę, ale może za to dziedziczyć dowolną liczbę interfejsów. | Interfejs nie może dziedziczyć klas, może za to dziedziczyć dowolną liczbę interfejsów. |
Metody abstrakcyjne | |
Klasa abstrakcyjna może zawierać metody abstrakcyjne. Ale może także nie zawierać żadnych. | Wszystkie niestatyczne i niedomyślne metody interfejsu są abstrakcyjne, tj. nie mają żadnych konkretnych implementacji. Interfejs może nie posiadać żadnych metod. |
Metody z implementacją | |
Klasa abstrakcyjna może zawierać metody z implementacją. | Interfejs może zawierać metody domyślne. |
Dane | |
Bez ograniczeń. | Interfejs zawiera tylko publiczne, finalne dane statyczne. |
Tworzenie obiektu | |
Nie możesz tworzyć instancji klasy abstrakcyjnej. | Nie możesz tworzyć instancji interfejsu. |
– To jest dokładnie to, co lubię. Krótko i na temat.
– Dzięki, Amigo.
GO TO FULL VERSION