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

Autor: Laura McKinney
Data Utworzenia: 2 Kwiecień 2021
Data Aktualizacji: 14 Móc 2024
Anonim
Różnica między klasą a interfejsem w Javie - Technologia
Różnica między klasą a interfejsem w Javie - Technologia

Zawartość


Zarówno klasa, jak i interfejs są używane do tworzenia nowych typów odniesień. Klasa to zbiór pól i metod działających na polach. Interfejs ma w pełni abstrakcyjne metody, tj. Metody bez nikogo. Interfejs jest syntaktycznie podobny do klasy, ale istnieje zasadnicza różnica między klasą a interfejsem, który jest klasą, można utworzyć instancję, ale interfejsu nigdy nie można utworzyć. Nauczmy się więc nieco więcej różnicy między klasą a interfejsem za pomocą tabeli porównawczej pokazanej poniżej.

  1. Wykres porównania
  2. Definicja
  3. Kluczowe różnice
  4. Wniosek

Wykres porównania

Podstawa do porównaniaKlasaBerło
PodstawowyInstancja klasy jest tworzona w celu tworzenia obiektów.Interfejs nigdy nie może zostać utworzony, ponieważ metody nie są w stanie wykonać żadnej akcji po wywołaniu.
Słowo kluczoweklasaberło
Specyfikator dostępuCzłonkowie klasy mogą być prywatni, publiczni lub chronieni.Członkowie interfejsu są zawsze publiczni.
Metody Metody klasy są zdefiniowane w celu wykonania określonej akcji.Metody w interfejsie są czysto abstrakcyjne.
Implementuj / przedłużKlasa 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.
Konstruktor Klasa może mieć konstruktory do inicjowania zmiennych.Interfejs nigdy nie może mieć konstruktora, ponieważ nie ma prawie żadnej zmiennej do zainicjowania.


Definicja klasy

Klasa jest najważniejszym aspektem programowania Java bez klas, w których nie można wdrożyć programu Java. Klasa tworzy typy referencji i te typy referencji są używane do tworzenia obiektów. Klasa ma podpis i treść. Podpis klasy zawiera nazwę klasy i informacje, które informują, czy klasa odziedziczyła inną klasę. Ciało klasy zawiera pola i metody działające na tych polach. Klasa tworzona jest za pomocą słowa kluczowego klasa. Pozwala nam zobaczyć, jak zadeklarować klasę.

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

Po utworzeniu instancji klasy każdy utworzony obiekt zawiera wraz z nimi kopię pól i metod. Pola i elementy zadeklarowane w klasie mogą być statyczne lub niestatyczne. Wartość elementów statycznych jest stała dla każdego obiektu, natomiast elementy niestatyczne są inicjowane 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ępności członków dla użytkownika lub 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 dziedziczonej) w podklasie (klasie dziedziczącej). Zatem klasa spełnia koncepcję ukrywania danych i enkapsulacji w programowaniu obiektowym.


Definicja interfejsu

Interfejs należy również do typów referencyjnych zdefiniowanych w Javie. Znaczenie interfejsu polega na tym, że w Javie klasa może odziedziczyć tylko jedną klasę. Aby uniknąć tego ograniczenia, projektanci Java wprowadzili koncepcję interfejsu. Interfejs jest składniowo podobny do klasy, ale brakuje w nim deklaracji pola, a metody wewnątrz interfejsu nie mają żadnej implementacji. Interfejs deklarowany jest za pomocą słowa kluczowego berło. Zobaczmy deklarację interfejsu.

interfejs nazwa_interfejsu {typ nazwa_ var = wartość; wpisz metodę1 (lista parametrów); wpisz method2 (lista parametrów); . . }

Interfejs nie definiuje żadnej metody zadeklarowanej w nim, ponieważ nie ma w nim pól do działania. Tylko dlatego, że żadna metoda wewnątrz interfejsu nie wykonuje żadnej akcji, interfejs nigdy nie może zostać utworzony. Jeśli interfejs ma członka pola, należy go zainicjować w momencie jego deklaracji. Interfejs nigdy nie zawiera żadnych konstruktorów, ponieważ brakuje elementów członkowskich do inicjalizacji. Interfejs określa więc tylko, co klasa musi zrobić, a nie jak to zrobić.

Raz utworzony interfejs może być zaimplementowany przez dowolną liczbę klas za pomocą słowa kluczowego narzędzia. Ale klasy implementujące interfejs muszą zdefiniować wszystkie metody w interfejsie. Interfejs może również dziedziczyć inny interfejs za pomocą poszerzać słowo kluczowe. Jeśli klasa implementuje interfejs, który rozszerza 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, które je implementują.

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

  1. Można utworzyć instancję klasy, 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 deklarowana 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 publiczni, ponieważ klasy, które je implementują, muszą mieć do nich dostęp.
  4. Metody wewnątrz klasy są zdefiniowane do wykonywania akcji na polach zadeklarowanych w klasie. Ponieważ interfejs nie zawiera deklaracji pól, metody w interfejsie są czysto abstrakcyjne.
  5. Klasa może implementować dowolną liczbę interfejsów, ale może rozszerzyć tylko jedną superklasę. Interfejs może rozszerzać dowolną liczbę interfejsów, ale nie może implementować żadnego interfejsu.
  6. Klasa ma zdefiniowane konstruktory w celu zainicjowania zmiennej. Ale interfejs nie ma żadnych konstruktorów, ponieważ nie ma żadnych pól do zainicjowania. Pola interfejsu są inicjowane tylko w momencie deklaracji.

Wniosek:

Zarówno klasy, jak i interfejsy mają swoje własne znaczenie. Klasa jest używana, gdy musimy zdefiniować sposób wykonania zadania. Interfejs jest używany, gdy musimy wiedzieć, jakie zadanie należy wykonać.