Java zapewnia wiele sposobów zapewnienia abstrakcji danych, takich jak interfejsy Java i klasy abstrakcyjne Java. Zarówno interfejs, jak i klasa abstrakcyjna zapewniają bezpieczeństwo poprzez ukrywanie wewnętrznych szczegółów implementacji i tylko pokazując/podkreślając niezbędne szczegóły. Istnieje jednak wiele podobieństw i rozróżnień między klasami abstrakcyjnymi i interfejsami.
Ten post pomoże ci w poniżej listy aspektów interfejsów Java i zajęć abstrakcyjnych:
Więc zacznijmy!
Co to jest interfejs Java
Jest to szablon dla klasy, która zawiera niektóre abstrakcyjne metody i zmienne statyczne/końcowe. W Javie interfejsy zapewniają jedynie deklara.
Co to jest klasa abstrakcyjna Java
Każda klasa Java, która ma co najmniej jedną metodę abstrakcyjną (tylko metodę), jest znana jako klasa abstrakcyjna w Javie.
Porównanie oparte na podobieństwach
Niektóre ważne aspekty interfejsów Java i klasy abstrakcyjne wymieniono poniżej:
Interfejs Java Streszczenie vs Java
Słowa kluczowe „Streszczenie” i „Interfejs” są używane w Javie do tworzenia/deklarowania odpowiednio klas abstrakcyjnych i interfejsów.
W interfejsach wszyscy członkowie są domyślnie uważani za publicznych, więc nie ma potrzeby określania modyfikatora dostępu dla członków interfejsów. Podczas gdy w klasach abstrakcyjnych nie ma takiego ograniczenia, a zatem jakikolwiek modyfikator dostępu może być używany dla członków klas abstrakcyjnych, takich jak publiczne, chronione itp.
Podstawowa składnia klasy abstrakcyjnej i interfejsu pokazano na fragmentach poniżej
Klasa abstrakcyjna
public Streszczenie klas klasInterfejs
Interfacename interfejsu publicznegoInterfejsy muszą mieć wszystkie metody abstrakcyjne, podczas gdy klasy abstrakcyjne mogą mieć zarówno metody abstrakcyjne, jak i nie-abstrakcyjne.
Interfejs może mieć tylko statyczne elementy, podczas gdy klasy abstrakcyjne mogą mieć członków statycznych i niestatycznych.
Interfejsy mają tylko członków „ostatecznych” (niezmiennych), podczas gdy klasy abstrakcyjne mogą mieć członków końcowych i nieograniczających.
Interfejsy nie mają żadnego konstruktora, podczas gdy klasy abstrakcyjne mają zdefiniowane przez użytkownika lub domyślne konstruktory.
Wielokrotne dziedziczenie można osiągnąć za pomocą interfejsów, podczas gdy klasy abstrakcyjne nie obsługują wielu dziedziczeń.
W Javie klasa abstrakcyjna może odziedziczyć inną klasę i może zaimplementować wiele interfejsów, z drugiej strony interfejs Java może przedłużyć tylko inny interfejs.
Przykład
Poniższy przykład dany pozwoli ci zrozumieć, jak działają interfejsy i klasy abstrakcyjne w Javie:
interfejs FirstinterfaceW tym przykładzie utworzyliśmy interfejs „Firstinterface”, klasa abstrakcyjna „Streszczenie”, i dwie kolejne normalne klasy Java i wykonały następujące funkcje:
Interfejs jest główną klasą, z której stworzyliśmy główną metodę i powołaliśmy się na wszystkie metody Firstinterface:
Wyjście zweryfikowało działanie wyżej podarowanego programu Java.
Wniosek
W Javie abstrakcja można osiągnąć za pomocą klas abstrakcyjnych i interfejsów, a oba nie mogą być utworzone. Istnieje jednak wiele rozróżnień między klasami abstrakcyjnymi i interfejsami. Na przykład interfejsy muszą mieć wszystkie metody abstrakcyjne, podczas gdy klasy abstrakcyjne mogą mieć metody abstrakcyjne i nie-abstrakcyjne; Korzystając z interfejsów, można osiągnąć wielokrotne dziedziczenie, podczas gdy klasy abstrakcyjne nie obsługują wielu dziedziczeń itp. W tym poście wyjaśniono różne aspekty klas abstrakcyjnych i interfejsów za pomocą odpowiednich przykładów.