Pakiet programów do zdalnego nauczania Programowania Orientowanego Obiektowo
Dzisiaj jest
Poniedziałek, 16 Lipiec 2018
Zarejestrowanych użytkowników: 4
Dostępnych pytań testowych: 102
HOME
Strona tytułowa pracy dyplomowej
NAUKA
Materiały dydaktyczne związane z OOP
TESTY
Sprawdzenie poziomu zdobytej wiedzy
ZASOBY
Literatura i zasoby sieciowe o OOP
ŹRÓDŁA
Zbiór projektów dydaktycznych z OOP
KONTO
Możliwość śledzenia własnych postępów
INFO



Dziedziczenie

Ponieważ przy programowaniu zorientowanym obiektowo bardzo często zwraca się uwagę, na wygodę związaną z powtórnym wykorzystaniem kodu języki wspierające paradygmat orientowany obiektowo muszą udostępnić rozwiązania pozwalające na realizację tego założenia. O ile możliwość tworzenia wielu niezależnych egzemplarzy klas można potraktować jako możliwość ponownego wykorzystania danej implementacji, to ogólnie wymaga się bardziej wyrafinowanych mechanizmów. Najważniejszym z nich jest tzw. dziedziczenie.

Dziedziczenie pozwala na możliwość rozszerzenia funkcjonalności poszczególnych klas. Jeśli pewna klasa bazowa oferuje określoną funkcjonalność, to istnieje bardzo duże prawdopodobieństwo, że część z klas wyodrębnionych w systemie mogłaby korzystać z dostępnych możliwości klasy bazowej jednocześnie rozszerzając ją o dodatkowe funkcje. Klasa, który służy jako element wyjściowy jest nazwana zwykle klasą bazową. Klasy, która korzystają z rozwiązań zaimplementowanych w klasie bazowej poprzez dziedziczenie (rozszerzając i udostępniając dla klientowi dodatkowe funkcjonalności) są nazywane klasami pochodnymi.

Jeśli więc klasa bazowa jest zadeklarowana następująco:

class KlasaBazowa {
public:
	void metoda1();
	void metoda2();
private:
	void metodaPrywatna();
};

to deklaracja klasy pochodnej może przyjąć następującą formę:

class KlasaPochodna : public KlasaBazowa {
public:
	void metoda3();
	void metoda4();
};

W przedstawionym przykładzie obiekty klasy pochodnej udostępniają klientowi metody: metoda1(), metoda2(), metoda3() i metoda4(). Pierwsze dwie znajdują się w interfejsie klasy pochodnej z tego względu że zostały odziedziczone z klasy bazowej. Metody: metoda3() i metoda4() stanowią z kolei rozszerzenie interfejsu o nowe możliwości wobec tych oferowanych przez klasę bazową. Należy zauważyć, że klasyczne dziedziczenie odnosi się wyłącznie do elementów publicznych. Z tego też względu metodaPrywatna(), określona jako prywatna w klasie bazowej nie jest dla klasy pochodnej dostępna i ewentualna próba jej wywołania w jednej z metod utworzonych w klasie pochodnej skończy się błędem na etapie kompilacji.

Adamik Łukasz, Politechnika Śląska w Gliwicach (AEiI) - 2010/11