Różnica między klasą a interfejsem w Javie
Zawartość
- Wykres porównania
- Definicja klasy
- Definicja interfejsu
- Kluczowe różnice między klasą a interfejsem w Javie
- Wniosek:
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.
- Wykres porównania
- Definicja
- Kluczowe różnice
- Wniosek
Wykres porównania
Podstawa do porównania | Klasa | Berło |
---|---|---|
Podstawowy | Instancja 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 kluczowe | klasa | berło |
Specyfikator dostępu | Czł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
- 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.
- Klasa jest deklarowana za pomocą klasy słów kluczowych. W ten sam sposób interfejs jest tworzony za pomocą interfejsu słów kluczowych.
- 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.
- 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.
- 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.
- 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ć.