Kluczowa różnica: Istnieją dwa główne typy klas: Klasa abstrakcyjna i Klasa betonu. Główna różnica między nimi wynika z poziomu implementacji funkcjonalności ich metod. Klasy Konkretne to regularne zajęcia, w których wszystkie metody są w pełni wdrożone. Klasa abstrakcyjna jest dokładnie taka, jak sugeruje jej nazwa. To tam funkcje nie są zdefiniowane, tj. Są abstrakcyjne.
Istnieją dwa główne typy klas: Klasa abstrakcyjna i Klasa betonu. Główna różnica między nimi wynika z poziomu implementacji funkcjonalności ich metod. Klasy Konkretne to regularne zajęcia, w których wszystkie metody są w pełni wdrożone. Klasa abstrakcyjna jest dokładnie taka, jak sugeruje jej nazwa. To tam funkcje nie są zdefiniowane, tj. Są abstrakcyjne. To jest klasa podstawowa. Po zdefiniowaniu klasy abstrakcyjnej przestaje być abstrakcyjna i staje się konkretną klasą. Konkretna klasa zawiera implementacje funkcji składowych. Konkretna klasa wywodzi się z klasy bazowej, czyli klasy abstrakcyjnej.
Łatwiejszym sposobem przemyślenia tego byłoby rozważenie przykładu. Pomyśl o sporcie, jest to przedmiot, ale ten, który nie jest, nie jest zdefiniowany. Technicznie nie ma czegoś takiego jak sport. Istnieje tylko jako kategoryzacja dla innych obiektów. Obiekty takie jak piłka nożna, baseball, koszykówka, hokej itp. Są zdefiniowanymi obiektami, które można kategoryzować i wdrażać pod sportem. Dlatego sport jest klasą abstrakcyjną, podczas gdy piłka nożna, baseball, koszykówka i hokej to konkretne zajęcia.
Porównanie klasy abstrakcyjnej z klasą betonu:
Klasa abstrakcyjna | Klasa betonu | |
Rodzaj | Klasa podstawowa | Domyślna klasa |
Metody | Może zawierać częściowo wdrożone metody | Wszystkie metody są całkowicie zaimplementowane |
Funkcje | Niektóre lub wszystkie deklarowane funkcje są czysto wirtualne | Brak funkcji czysto wirtualnych |
Utworzenie | Nie można utworzyć instancji | Można utworzyć instancję |
Zdjęcie dzięki uprzejmości: tutorials.jenkov.com, stackoverflow.com