Zalecane, 2024

Wybór Redakcji

Różnica między klasą a interfejsem w Javie

Klasa i interfejs są używane do tworzenia nowych typów referencji. Klasa to zbiór pól i metod działających na polach. Interfejs ma w pełni abstrakcyjne metody tj. Metody z nikim. Interfejs jest syntaktycznie podobny do klasy, ale istnieje główna różnica między klasą a interfejsem, która może być instancją klasy, ale interfejs nigdy nie może być utworzony. Zobaczmy więc różnicę między klasą a interfejsem, korzystając z poniższego wykresu porównawczego.

Wykres porównania

Podstawa do porównaniaKlasaBerło
PodstawowyUtworzono klasę do tworzenia obiektów.Interfejs nigdy nie może być utworzony, ponieważ metody nie są w stanie wykonać żadnej akcji podczas wywoływania.
Słowo kluczoweklasaberło
Specyfikator dostępuCzłonkowie klasy mogą być prywatni, publiczni lub chronieni.Członkowie interfejsu są zawsze publiczni.
MetodyMetody klasy są zdefiniowane w celu wykonania określonego działania.Metody interfejsu są czysto abstrakcyjne.
Zaimplementuj / rozszerzKlasa może implementować dowolną liczbę interfejsów i może rozszerzać tylko jedną klasę.Interfejs może rozszerzać wiele interfejsów, ale nie może implementować żadnego interfejsu.
KonstruktorKlasa może mieć konstruktory do zainicjowania zmiennych.Interfejs nigdy nie może mieć konstruktora, ponieważ nie ma prawie żadnej zmiennej do zainicjowania.

Definicja klasy

Klasa jest najważniejszym aspektem programowania w języku Java bez klas, nie można zaimplementować programu java. Klasa tworzy typy odniesienia, a te typy odniesienia są używane do tworzenia obiektów. Klasa ma podpis i ciało. Podpis klasy zawiera nazwę klasy i informacje, które określają, czy klasa odziedziczyła inną klasę. Ciało klasy ma pola i metody działające na tych polach. Klasa jest tworzona przy użyciu klasy słów kluczowych. Pozwala nam zobaczyć, jak zadeklarować klasę.

 class nazwa_klasy {/ * pola ... metody * /} 

Po utworzeniu klasy każdy utworzony obiekt zawiera kopię pól i metod. Pola i członkowie zadeklarowani w klasie mogą być statyczne lub niestatyczne. Wartości członów statycznych są stałe dla każdego obiektu, podczas gdy elementy niestatyczne są inicjalizowane przez każdy obiekt inaczej w zależności od jego wymagań.

Członkowie klasy mają specyfikatory dostępu, które decydują o widoczności i dostępie członków do użytkownika lub do podklas. Specyfikatory dostępu są publiczne, prywatne i chronione. Klasa może być dziedziczona przez inną klasę przy użyciu specyfikatora dostępu, który decyduje o widoczności członków nadklasy (klasy odziedziczonej) w podklasie (dziedziczeniu klasy). Klasa ta spełnia więc funkcję ukrywania i enkapsulacji danych w programowaniu obiektowym.

Definicja interfejsu

Interfejs jest także jednym z typów referencji zdefiniowanych w Javie. Znaczenie interfejsu jest takie, że w Javie klasa może dziedziczyć tylko jedną klasę. Aby uniknąć tego ograniczenia, projektanci Javy wprowadzili koncepcję interfejsu. Interfejs jest syntaktycznie podobny do klasy, ale brakuje w deklaracji pola, a metody wewnątrz interfejsu nie mają żadnej implementacji. Interfejs deklarowany jest za pomocą interfejsu słów kluczowych. Zobaczmy deklarację interfejsu.

 interface nazwa_interfejsu {typ nazwa_zmiennej = wartość; typ method1 (lista parametrów); type method2 (lista parametrów); . . } 

Interfejs nie definiuje żadnej zadeklarowanej w nim metody, ponieważ brakuje jej w polach do obsługi. Tylko dlatego, że dowolna metoda wewnątrz interfejsu nie wykonuje żadnej akcji, interfejs nigdy nie może być utworzony. Jeśli interfejs ma dowolnego członka pola, musi zostać zainicjowany w momencie deklaracji. Interfejs nigdy nie zawiera żadnych konstruktorów, ponieważ brakuje im elementów pola do inicjalizacji. Interfejs definiuje tylko to, co klasa musi zrobić, zamiast tego, co musi zrobić.

Utworzony interfejs może zostać zaimplementowany przez dowolną liczbę klas za pomocą słów kluczowych implements . Ale klasy implementujące interfejs muszą definiować wszystkie metody wewnątrz interfejsu. Interfejs może również dziedziczyć inny interfejs przy użyciu słowa kluczowego extend . Jeśli klasa implementuje interfejs rozszerzający inny interfejs. Następnie klasa musi zdefiniować metody obu interfejsów pojawiających się w łańcuchu. Metody wewnątrz interfejsu muszą być zawsze publiczne, ponieważ muszą być dostępne dla klas implementujących je.

Kluczowe różnice między klasą a interfejsem w Javie

  1. Klasę można utworzyć instancją, tworząc jej obiekty. Interfejs nigdy nie jest tworzony, ponieważ metody zadeklarowane w interfejsie są abstrakcyjne i nie wykonują żadnej akcji, więc nie ma potrzeby tworzenia instancji żadnego interfejsu.
  2. Klasa jest zadeklarowana za pomocą klasy słów kluczowych. W ten sam sposób interfejs jest tworzony za pomocą interfejsu słów kluczowych.
  3. Członkowie klasy mogą mieć specyfikator dostępu, taki jak publiczny, prywatny, chroniony. Jednak członkowie interfejsu są zawsze publicznie dostępni, ponieważ muszą uzyskać do nich dostęp zaimplementowane klasy.
  4. Metody wewnątrz klasy są zdefiniowane w celu wykonywania akcji na polach zadeklarowanych w klasie. Ponieważ interfejs nie ma w deklaracji pól, metody wewnątrz interfejsu są czysto abstrakcyjne.
  5. Klasa może implementować dowolną liczbę interfejsów, ale może rozszerzyć tylko jedną super klasę. Interfejs może rozszerzać dowolną liczbę interfejsów, ale nie może implementować żadnego interfejsu.
  6. Klasa ma konstruktory zdefiniowane w niej, aby zainicjować zmienną. Ale interfejs nie ma żadnych konstruktorów, ponieważ nie ma pól do zainicjowania. Pola interfejsu są inicjalizowane tylko w momencie deklaracji.

Wniosek:

Obie klasy i interfejsy mają swoje znaczenie. Klasa jest używana, gdy musimy zdefiniować, w jaki sposób zadanie zostanie wykonane. Interfejs jest używany, gdy musimy wiedzieć, jakie zadanie należy wykonać.

Top