Co to jest klasa podstawowa?
Klasa podstawowa, zwana także superklasą, jest obiektem komputerowym, który działa jako podstawa dla jednej lub więcej klas pochodnych. Każdy język komputerowy, który może dziedziczyć, może utworzyć klasę podstawową. W zależności od ich dokładnego typu klasy podstawowe mogą, ale nie muszą, być w stanie zainicjować - przypisując wartość początkową do obiektu - samodzielnie, ale zawsze dają jakąś wspólną funkcjonalność każdej klasie, która je dziedziczy. Nigdy nie ma ograniczenia liczby klas pochodnych lub podklas, które mogą mieć klasy podstawowe, ale może istnieć limit, w zależności od języka komputera, liczby klas podstawowych, jakie może mieć klasa pochodna. Mówi się, że języki, które pozwalają klasie pochodnej mieć tylko jedną bazę, wymuszają pojedyncze dziedziczenie, podczas gdy te, które pozwalają klasie pochodnej na wiele klas bazowych, używają wielokrotnego dziedziczenia.
Konkretne klasy bazowe można inicjować samodzielnie; oznacza to, że można utworzyć obiekt typu klasy bazowej. Jeśli przykład klasy stanowi podstawę dla pochodnej klasy Przykład2, można zarówno utworzyć obiekt typu Przykład2, jak i obiekt typu Przykład. Obiekt typu Przykład można utworzyć tylko przez jawne wywołanie tego typu obiektu; utworzenie obiektu typu Przykład2 nie tworzy dodatkowego obiektu typu Przykład. W każdym przypadku tworzony typ obiektu tworzy samą instancję.
Natomiast abstrakcyjne klasy podstawowe nie mogą być inicjowane same, co oznacza, że obiekt klasy podstawowej nie może być wykonany sam. Jeśli klasa Przykład 3 jest abstrakcyjną bazą dla pochodnej klasy Przykład 4, można utworzyć tylko obiekt typu Przykład 4. Mimo że typ Przykład 4 zawiera dane z typu Przykład 3, próba utworzenia obiektu wyłącznie typu Przykład 3 spowoduje błąd. Ta funkcja może być czasem przydatna, szczególnie jeśli klasa Example3 zawiera prywatne dane, które powinny być ściśle regulowane.
W zależności od języka, w jakim się pojawia, klasa podstawowa może mieć nieco inne zachowania i wyraźnie różne nazwy. W Javie klasy podstawowe są zawsze nazywane tą nazwą, natomiast w C ++, w zależności od ich struktury, można je nazwać klasami wirtualnymi. Różnice w nazwie i funkcjonalności, chociaż znaczące pod względem używanych języków komputerowych, nie implikują dużych różnic w zasadzie stojącej za klasami. Klasa podstawowa jest zawsze używana do enkapsulacji wspólnej funkcjonalności i danych dla jej klas pochodnych, niezależnie od języka.