Różnica między klasą a interfejsem

Spisu treści:

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

Wideo: Różnica między klasą a interfejsem

Wideo: Różnica między klasą a interfejsem
Wideo: Różnice pomiędzy interfejsem a klasą abstrakcyjną w .NET - Standardowe Pytania Rekrutacyjne 2024, Czerwiec
Anonim

Kluczowa różnica – klasa a interfejs

Programowanie zorientowane obiektowo (OOP) to powszechny paradygmat w tworzeniu oprogramowania. Pomaga wprowadzić scenariusze ze świata rzeczywistego do programowania przy użyciu klas i obiektów. Klasa to plan tworzenia obiektu. Programista może stworzyć klasę z właściwościami i metodami. Uczeń i nauczyciel to przedmioty. Tworzenie obiektu nazywa się tworzeniem instancji. OOP wykorzystuje również interfejsy. Interfejsy i klasa mogą wydawać się podobne, ale mają różnicę. W tym artykule omówiono różnicę między klasą a interfejsem. Kluczową różnicą między klasą a interfejsem jest to, że 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.

Co to jest klasa?

W programowaniu obiektowym wszystko jest traktowane jako obiekt. Nie ma możliwości stworzenia obiektu bez klasy. Klasa to plan tworzenia obiektu. Budując dom, architekt rysuje plan. Plan jest podobny do zajęć. Dom jest podobny do obiektu. Klasa to plan budowy obiektu. Obiekt jest tym, co jest tworzone przy użyciu klasy.

Klasa zawiera właściwości i metody. Student może posiadać takie właściwości jak imię i nazwisko, stopień, numer indeksu. Student może mieć takie metody jak czytanie, chodzenie, nauka. Utworzona zostaje 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 słowa kluczowego class.

class nazwa_klasy {

// właściwości

//metody

}

Języki programowania, takie jak C i Java, mają podobną składnię do tworzenia obiektu przy użyciu klasy. Załóżmy, że nazwa klasy to Student.

Student s1=nowy Student ();

To s1 jest obiektem. Słowo kluczowe „new” służy do przydzielania pamięci dla właściwości. Klasa posiada również konstruktor do inicjalizacji 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. Chronione elementy członkowskie są dostępne w ramach klasy i odpowiednich podklas.

Co to jest interfejs?

Abstrakcja jest filarem programowania obiektowego. Ma to na celu ukrycie szczegółów implementacji oraz wyświetlenie funkcjonalności użytkownikowi. Abstrakcja jest osiągana za pomocą klas abstrakcyjnych i interfejsów. Metoda abstrakcyjna nie ma implementacji. Klasa, która zawiera co najmniej jedną metodę abstrakcyjną, nazywana jest klasą abstrakcyjną.

Gdy istnieją dwie klasy abstrakcyjne, metody zadeklarowane w tych klasach powinny zostać zaimplementowane. Do implementacji tych metod używana jest nowa klasa. Jeśli obie klasy mają tę samą metodę, może to spowodować problem niejednoznaczności. Dlatego języki programowania, takie jak Java i C, mają interfejs.

Interfejsy zawierają tylko deklaracje metod. Nie ma metody realizacji. Ponadto interfejsów nie można używać do tworzenia obiektów. Służą do obsługi wielu dziedziczeń i do zabezpieczenia kodu.

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

interface interface_name{

type method1(parameter_list);

type method2(parameter_list);

}

Zgodnie z powyższym, interfejsy mają tylko deklarację. Nie ma definicji. Tak więc interfejsy nie mogą tworzyć instancji obiektów. Daje tylko abstrakcyjny obraz 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. Zapoznaj się z poniższym przykładem napisanym w języku Java.

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

Rysunek 01: Program przy użyciu interfejsów

Według powyższego programu, A i B są interfejsami. Interfejs A ma deklarację metody, którą jest sum(). Interfejs B ma deklarację metody sub(). Klasa C implementuje oba interfejsy, które są A i B. Dlatego klasa C definiuje zarówno metody sum(), jak i sub(). Po utworzeniu obiektu typu C możliwe jest wywołanie obu metod sum() i sub().

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

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

  • Oba są typami referencyjnymi.
  • Oba odnoszą się do programowania obiektowego.

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

Klasa a interfejs

Klasa jest typem referencyjnym, który jest planem tworzenia obiektu. Interfejs jest typem referencyjnym, którego nie można utworzyć.
Instancja 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 do inicjalizacji zmiennych. Interfejs nie zawiera konstruktora, ponieważ prawie nie ma żadnych zmiennych 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ż klasy implementujące ich definiują.

Podsumowanie – klasa a 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 planem 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ą superklasę. W interfejsie może dziedziczyć wiele interfejsów, ale nie może być implementacji. Oba mają swoje znaczenie. Programista może z nich korzystać zgodnie z rozwijanym oprogramowaniem.

Pobierz klasę PDF a interfejs

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

Zalecana: