![Różnica między klasą abstrakcyjną a interfejsem - Edukacja Różnica między klasą abstrakcyjną a interfejsem - Edukacja](https://a.you7behappy.com/education/difference-between-abstract-class-and-interface.jpg)
Zawartość
Główna różnica
Główna różnica między klasą abstrakcyjną a interfejsem polega na tym, że procedury interfejsu Java są zasadniczo abstrakcyjne i nie mogą zawierać aplikacji. Mówiąc ogólnie, interfejs jest w rzeczywistości umową, a kiedy mówimy o interfejsie, stosuje się, że metody nie mają ciała, to tylko wzorzec. Podczas gdy klasy abstrakcyjne to w zasadzie klasy, które są drogie w użyciu. Klasy abstrakcyjne i interfejs to zupełnie inna koncepcja, są to dwie różne rzeczy, ale czasami ich implementacje są dość podobne.
Co to jest klasa abstrakcyjna?
Klasa abstrakcyjna nie jest całkowicie sugerowana przez programistę. Klasa abstrakcyjna może mieć jedną lub więcej metod abstrakcyjnych. Przydają się do modelowania grupowania lub rankingu klas i podczas gdy programista jest w trakcie przeprowadzania, programiści rozumieją, co należy zbudować po zapoznaniu się z wymaganiami. Na klasę abstrakcyjną nie można polegać całkowicie, ponieważ brakuje jej części. Głównym argumentem tego argumentu jest to, że klasa abstrakcyjna jest ściśle zorientowana obiektowo, chociaż ma nagłówek metody, ale nie ma treści. Kiedy mówimy o klasach abstrakcyjnych, istnieje silny związek między dwiema klasami, ponieważ te klasy mają tendencję do wzajemnego pozyskiwania się lub dziedziczenia.
Co to jest interfejs?
Kiedy mówimy o interfejsie, wręcz przeciwnie, relacja lub komunikacja między samym interfejsem a klasą implikującą interfejs nie jest tak silna, jak w klasach abstrakcyjnych. Klasa Java może implementować wiele interfejsów, ale może dziedziczyć po jednej klasie abstrakcyjnej. Oznacza to, że jeśli chcesz sugerować wiele interakcji jednocześnie, interfejs jest twoją sprawą. Oprócz tego całego scenariusza, nawet jeśli nie chcesz, aby interfejs API zmieniał się przez jakiś czas, interfejs jest dla Ciebie najlepszą opcją. Interfejs to tak naprawdę umowa między dwoma różnymi obiektami. Krótko mówiąc, interfejs obraca się wokół funkcjonalności.
Kluczowe różnice
- Klasa abstrakcyjna jest zorientowana obiektowo, a interfejs zorientowany na funkcje.
- Jeśli chcesz, aby interfejs API pozostawał stały przez jakiś czas, wybierasz interfejs zamiast klasy abstrakcyjnej.
- Można przypisać wiele spadków, sugerując wiele interfejsów. W klasie abstrakcyjnej nie można uzyskać wielu spadków.
- Jeśli masz klimat, że w przyszłości będziesz musiał dodać metody w swojej pracy, wtedy wybierz abstrakcyjną klasę, a nie interfejs.
- Klasa abstrakcyjna daje wspólną aplikację klasy bazowej, ale nic takiego się nie dzieje w interfejsie.
- W interfejsie wszystkie zaimplementowane metody są publiczne, ale w klasie abstrakcyjnej można również zastosować niektóre metody niepubliczne.
- Konstruktory nie występują w interfejsie, ale występują w klasie abstrakcyjnej.
- Kompletny element klasy abstrakcyjnej może być statyczny, ale nie interfejsowy.