Różnica między klasą a interfejsem

Kluczowa różnica - klasa vs Interfejs
 

Programowanie obiektowe (OOP) jest powszechnym paradygmatem w rozwoju oprogramowania. Pomaga wprowadzić rzeczywiste scenariusze do programowania przy użyciu klas i obiektów. Klasa to plan tworzenia obiektu. Programista może utworzyć klasę z właściwościami i metodami. Uczeń i nauczyciel są przedmiotami. Tworzenie obiektu jest znane jako tworzenie instancji. OOP używa również interfejsów. Interfejsy i klasa mogą wydawać się podobne, ale mają różnicę. W tym artykule omówiono różnicę między klasą a interfejsem. The kluczowa różnica między klasą a interfejsem jest to klasa jest typem referencyjnym, który jest planem tworzenia instancji obiektu, podczas gdy interfejs jest typem referencyjnym, którego nie można użyć do utworzenia instancji obiektu.

ZAWARTOŚĆ

1. Przegląd i kluczowa różnica
2. Co to jest klasa
3. Co to jest interfejs
4. Podobieństwa między klasą a interfejsem
5. Porównanie obok siebie - Klasa vs interfejs w formie tabelarycznej
6. Podsumowanie

Co to jest klasa?

W OOP wszystko jest traktowane jako obiekt. Nie można utworzyć obiektu bez klasy. Klasa to plan tworzenia obiektu. Budując dom, architekt rysuje plan. Plan jest podobny do klasy. Dom jest podobny do obiektu. Klasa jest planem zbudowania obiektu. Obiekt jest tworzony za pomocą klasy.

Klasa zawiera właściwości i metody. Student może mieć właściwości takie jak imię i nazwisko, klasa, numer indeksu. Student może mieć takie metody jak czytanie, chodzenie, studiowanie. Tworzona jest klasa z niezbędnymi właściwościami i metodami.

Składnia tworzenia klasy w wielu językach programowania jest następująca. Jest tworzony przy użyciu klasy słów kluczowych.

klasa nazwa_klasy

// nieruchomości

// metody

Języki programowania, takie jak C # i Java, mają podobną składnię, aby utworzyć obiekt za pomocą klasy. Załóżmy, że nazwa klasy to Student.

Student s1 = nowy Student ();

Ten s1 jest obiektem. Słowo kluczowe „nowy” służy do alokacji pamięci dla właściwości. Klasa ma również konstruktor do inicjowania właściwości lub zmiennych.

Członkowie klasy, tacy jak właściwości i metody, mają modyfikatory dostępu. Specyfikatory dostępu opisują dostępność i widoczność tych członków dla innych klas. Członkowie klasy mogą mieć specyfikatory dostępu, takie jak publiczny, prywatny i chroniony. Członkowie publiczni są dostępni dla innych klas. Członkowie prywatni są dostępni tylko dla klasy. Członkowie chronieni są dostępni w ramach klasy i odpowiednich podklas.

Co to jest interfejs?

Abstrakcja jest filarem programowania obiektowego. Ma to na celu ukrycie szczegółów implementacji i wyświetlenie funkcjonalności użytkownikowi. Abstrakcja odbywa się za pomocą klas abstrakcyjnych i interfejsów. Metoda abstrakcyjna nie ma implementacji. Klasa zawierająca co najmniej jedną metodę abstrakcyjną nazywana jest klasą abstrakcyjną.

W przypadku dwóch klas abstrakcyjnych należy zaimplementować metody zadeklarowane w tych klasach. Nowa klasa jest używana do implementacji tych metod. Jeśli obie klasy miałyby tę samą metodę, może to powodować problem niejednoznaczności. Dlatego języki programowania, takie jak Java i C #, mają interfejs.

Interfejsy zawierają tylko deklarację metod. Nie ma metody wdrożenia. Interfejsy nie mogą również służyć do tworzenia obiektów. Służą do obsługi wielu spadków i zabezpieczenia kodu.

Składnia interfejsu jest następująca. Interfejs użyj słowa kluczowego „interfejs”.

interfejs nazwa_interfejsu

wpisz metodę1 (lista_parametrów);

wpisz method2 (lista_parametrów);

Zgodnie z powyższym interfejsy mają tylko deklarację. Nie ma definicji. Interfejsy nie mogą więc tworzyć obiektów. Daje jedynie abstrakcyjny widok tego, czym jest interfejs. Metody zadeklarowane w interfejsie mogą być implementowane przez jedną lub wiele klas. Klasa używa słowa kluczowego „implement” do implementacji interfejsu. Zobacz poniższy przykład napisany przy użyciu Java.

Rysunek 01: Program korzystający z interfejsów

Zgodnie z powyższym programem A i B są interfejsami. Interfejs A ma deklarację metody, która jest sumą (). Interfejs B ma deklarację metody sub (). Klasa C implementuje oba interfejsy, które są A i B. Dlatego klasa C definiuje metody sum () i sub (). Po utworzeniu obiektu typu C można wywołać obie metody sum () i sub ().

Metody zadeklarowane w interfejsie muszą zawsze być publiczne, ponieważ definiują je klasy implementujące. Interfejs może również dziedziczyć z innego interfejsu.

Jakie są podobieństwa między klasą a interfejsem?

  • Oba są typami referencyjnymi.
  • Oba dotyczą programowania obiektowego.

Jaka jest różnica między klasą a interfejsem?

Klasa vs interfejs

Klasa jest typem odniesienia, który jest planem tworzenia obiektu. Interfejs to typ odwołania, którego nie można utworzyć.
 Tworzenie instancji obiektu
Klasa służy do tworzenia instancji obiektu. Nie można utworzyć instancji interfejsu, ponieważ metody nie są w stanie wykonać żadnej akcji.
Konstruktor
Klasa zawiera konstruktor, który inicjuje zmienne. Interfejs nie zawiera konstruktora, ponieważ nie są to prawie żadne zmienne do zainicjowania.
 Słowo kluczowe
Klasa używa słowa kluczowego „klasa”. Interfejs używa słowa kluczowego „interfejs”.
Specyfikator dostępu
Członkowie klasy mogą być prywatni, publiczni i chronieni. Członkowie interfejsu powinni być zawsze publiczni, ponieważ definiują je klasy implementujące.

Podsumowanie - klasa vs Interfejs

Klasy i interfejsy są szeroko stosowane w programowaniu obiektowym. Różnica między klasą a interfejsem polega na tym, że klasa jest typem referencyjnym, który jest schematem tworzenia instancji obiektu, a interfejs jest typem referencyjnym, którego nie można użyć do utworzenia instancji obiektu. Klasa może implementować wiele interfejsów. Ale może rozszerzyć tylko jedną nadklasę. Interfejs może dziedziczyć wiele interfejsów, ale nie może być implementacji. Oba mają swoje znaczenie. Programista może z nich korzystać zgodnie z tworzonym oprogramowaniem.

Pobierz PDF Class vs Interface

Możesz pobrać wersję PDF tego artykułu i używać go do celów offline zgodnie z cytatem. Pobierz wersję PDF tutaj Różnica między klasą a interfejsem

Odniesienie:

1.tutorialspoint.com. „Obiekt Java i klasy.”, The Point. Dostępny tutaj 
2.navinreddy20. Interfejs w Javie z przykładem Java By Navin Reddy, 11 grudnia 2012. Dostępny tutaj