248 Godzina 16
ZAWSZE |
NIGDY |
Zawsze rozszerzaj możliwości i funkcjonalność klas poprzez tworzenie klas pochodnych. Zawsze modyfikuj działanie funkcji w klasach pochodnych poprzez nadpisywanie funkcji klasy bazowej. |
Nigdy nie ukrywaj metod klasy bazowej poprzez zmianę sygnatury funkcji. |
W ciągu tej godziny poznałeś zasady tworzenia klas pochodnych i dziedziczenia. Klasa dziedziczy po klasie bazowej wszystkie elementy zadeklarowane jako public i protected.
Elementy zadeklarowane jako protected są dostępne we wszystkich klasach pochodnych danej klasy. Klasy pochodne nie mają dostępu do elementów zadeklarowanych w klasie bazowej jako private.
Konstruktor może być zainicjalizowany przed wykonaniem treści. Z taką sytuacją mamy do czynienia w momencie wywoływania konstruktora klasy bazowej i przekazywania do niego parametrów.
W klasie pochodnej można nadpisać metody klasy bazowej. Jeśli funkcje klasy bazowej są wirtualne (patrz dalsza część książki) i jeśli odwołujemy się do obiektu poprzez wskaźnik lub referencję to funkcje klasy pochodnej będą wywoływane zależnie od typu wskazywanego aktualnie obiektu.
Metody klasy bazowej mogą być bezpośrednio wywołane poprzez pełną nazwę funkcji wraz z nazwą klasy bazowej. Np. jeśli klasa Pies dziedziczy z klasy Ssak metodę Idz (), to metodę tę można wywołać: Ssak: : Idz ().
P: Czy elementy klas są dziedziczone we wszystkich kolejnych klasach pochodnych? Czy jeśli klasa Pies jest pochodną klasy Ssak, i jeśli Ssak jest pochodną klasy Zwierze to czy klasa Pies dziedziczy zmienne i funkcje klasy Zwierze?
O: Oczywiście tak. Dziedziczenie dotyczy całej stworzonej hierarchii. Klasa pochodna posiada cechy wszystkich swoich klas bazowych.
P: Czy klasa pochodna może zmienić metodę bazową, zadeklarowaną jako public na funkcję typu private?
O: Tak, i co więcej taka funkcją będzie prywatna we wszystkich kolejnych klasach pochodnych.
ZAWSZE |
NIGDY |
Zawsze rozszerzaj możliwości i funkcjonalność klas poprzez tworzenie klas pochodnych. Zawsze modyfikuj działanie funkcji w klasach pochodnych poprzez nadpisywanie funkcji klasy bazowej. |
Nigdy nie ukrywaj metod klasy bazowej poprzez zmianę sygnatury funkcji. |
W ciągu tej godziny poznałeś zasady tworzenia klas pochodnych i dziedziczenia. Klasa dziedziczy po klasie bazowej wszystkie elementy zadeklarowane jako public i protected.
Elementy zadeklarowane jako protected są dostępne we wszystkich klasach pochodnych danej klasy. Klasy pochodne nie mają dostępu do elementów zadeklarowanych w klasie bazowej jako private.
Konstruktor może być zainicjalizowany przed wykonaniem treści. Z taką sytuacją mamy do czynienia w momencie wywoływania konstruktora klasy bazowej i przekazywania do niego parametrów.
W klasie pochodnej można nadpisać metody klasy bazowej. Jeśli funkcje klasy bazowej są wirtualne (patrz dalsza część książki) i jeśli odwołujemy się do obiektu poprzez wskaźnik lub referencję to funkcje klasy pochodnej będą wywoływane zależnie od typu wskazywanego aktualnie obiektu.
Metody klasy bazowej mogą być bezpośrednio wywołane poprzez pełną nazwę funkcji wraz z nazwą klasy bazowej. Np. jeśli klasa Pies dziedziczy z klasy Ssak metodę Idz (), to metodę tę można wywołać: Ssak: : Idz ().
P: Czy elementy klas są dziedziczone we wszystkich kolejnych klasach pochodnych? Czy jeśli klasa Pies jest pochodną klasy Ssak, i jeśli Ssak jest pochodną klasy Zwierze to czy klasa Pies dziedziczy zmienne i funkcje klasy Zwierze?
O: Oczywiście tak. Dziedziczenie dotyczy całej stworzonej hierarchii. Klasa pochodna posiada cechy wszystkich swoich klas bazowych.
P: Czy klasa pochodna może zmienić metodę bazową, zadeklarowaną jako public na funkcję typu private?
O: Tak, i co więcej taka funkcją będzie prywatna we wszystkich kolejnych klasach pochodnych.