Poznaj C++ w$ godziny0240

Poznaj C++ w$ godziny0240



232 Godzina 16

Taksonomia wprowadza hierarchię typu Jeść...”albo „należy do...”. Pies jest drapieżnikiem. Wszędzie możemy dostrzec tego typu relacje. Toyota jest samochodem, który jest z kolei rodzajem pojazdu. Lody są deserem który z kolei jest rodzajem pożywienia.

Co właściwie mamy na myśli, kiedy mówimy że coś jest „rodzajem czegoś’? Otóż najczęściej chodzi nam o to, że jedna rzecz jest szczególnym przypadkiem innej rzeczy (bardziej ogólnej). Samochód jest pojazdem. Samochody i autobusy to pojazdy; każdy z nich ma swoje cechy charakterystyczne, świadczące o ich „samochodowości” lub „autobusowości”. Jednak po uogólnieniu, że są pojazdami stają się identyczne i dominująca staje się ich „pojazdowość”.

Dziedziczenie i pochodzenie

Każdy pies dziedziczy ze ssaka wszystkie jego cechy. Możemy powiedzieć, że ponieważ jest ssakiem to umie się poruszać, oddycha powietrzem itp. Jednak pojęcie pies dodaje do definicji ssaka możliwość szczekania, machania ogonem itp. Pojęcie pies jest specjalistyczne natomiast ssak ogólne.

Możemy posunąć się dalej i podzielić psy na myśliwskie i terriery. Terriery możemy z kolei podzielić na Yorkshire, Dandie itp.

Yorkshire Terrier jest rodzajem terriera; jest również psem, ssakiem, zwierzęciem i w końcu żywym stworzeniem. Rysunek 16.1 pokazuje tę hierarchię.

C++ pozwala na reprezentowanie takich relacji poprzez definiowanie klas pochodzących od innych klas. Pochodzenie jest metoda wyrażania relacji Jest...”. Możesz stworzyć klasę Pies jako pochodną klasy Ssak. Nie musisz jawnie określać, że Pies potrafi się poruszać, gdyż ta cecha zostanie odziedziczona z klasy Ssak. Klasa Pies, poprzez dziedziczenie z klasy Ssak, automatycznie posiada umiejętność „poruszania się”.

Klasa, która wprowadza nowe funkcje do już istniejącej klasy, nazywana jest pochodną klasy oryginalnej. Klasa oryginalna nazywana jest klasą bazową.

Jeśli klasa Pies jest pochodną klasy Ssak, to klasa Ssak jest klasą bazową klasy Pies. Klasy pochodne są nadzbiorami ich klas bazowych. Tak jak pies posiada dodatkowe umiejętności w stosunku do statystycznego ssaka, tak i klasa Pies dodaje nowe metody i dane do klasy Ssak.

Zazwyczaj, każda klasa bazowa, ma więcej niż jedna klasę pochodną. Tak jak psy, koty i konie są ssakami, tak samo ich klasy będą pochodnymi klasy Ssak.

\

Taksonomia wprowadza hierarchię typu Jest..."albo „należy do...". Pies jest drapieżnikiem. Wszędzie możemy dostrzec tego typu relacje. Toyota jest samochodem, który jest z kolei rodzajem pojazdu. Lody są deserem który z kolei jest rodzajem pożywienia.

Co właściwie mamy na myśli, kiedy mówimy że coś jest „rodzajem czegoś”? Otóż najczęściej chodzi nam o to, że jedna rzecz jest szczególnym przypadkiem innej rzeczy (bardziej ogólnej). Samochód jest pojazdem. Samochody i autobusy to pojazdy; każdy z nich ma swoje cechy charakterystyczne, świadczące o ich „samochodowości” lub „autobusowości”. Jednak po uogólnieniu, że są pojazdami stają się identyczne i dominująca staje się ich „pojazdowość".

Dziedziczenie i pochodzenie

Każdy pies dziedziczy ze ssaka wszystkie jego cechy. Możemy powiedzieć, że ponieważ jest ssakiem to umie się poruszać, oddycha powietrzem itp. Jednak pojęcie pies dodaje do definicji ssaka możliwość szczekania, machania ogonem itp. Pojęcie pies jest specjalistyczne natomiast ssak ogólne.

Możemy posunąć się dalej i podzielić psy na myśliwskie i terriery. Terriery możemy z kolei podzielić na Yorkshire, Dandie itp.

Yorkshire Terrier jest rodzajem terriera; jest również psem, ssakiem, zwierzęciem i w końcu żywym stworzeniem. Rysunek 16.1 pokazuje tę hierarchię.

C++ pozwala na reprezentowanie takich relacji poprzez definiowanie klas pochodzących od innych klas. Pochodzenie jest metoda wyrażania relacji Jest...". Możesz stworzyć klasę Pies jako pochodną klasy Ssak. Nie musisz jawnie określać, że Pies potrafi się poruszać, gdyż ta cecha zostanie odziedziczona z klasy Ssak. Klasa Pies, poprzez dziedziczenie z klasy Ssak, automatycznie posiada umiejętność „poruszania się”.

Klasa, która wprowadza nowe funkcje do już istniejącej klasy, nazywana jest pochodną klasy oryginalnej. Klasa oryginalna nazywana jest klasą bazową.

Jeśli klasa Pies jest pochodną klasy Ssak. to klasa Ssak jest klasą bazową klasy Pies. Klasy pochodne są nadzbiorami ich klas bazowych. Tak jak pies posiada dodatkowe umiejętności w stosunku do statystycznego ssaka, tak i klasa Pies dodaje nowe metody i dane do klasy Ssak.

Zazwyczaj, każda klasa bazowa, ma więcej niż jedna klasę pochodną. Tak jak psy, koty i konie są ssakami, tak samo ich klasy będą pochodnymi klasy Ssak.


Wyszukiwarka

Podobne podstrony:
Poznaj C++ w$ godziny0032 16 Godzina 2 W linii 1 do programu dołączany jest plik iostream.h. Kompila
Poznaj C++ w$ godziny0047 Zmienne i stałe 31Kiedy używać short a kiedy long Jednym z problemów progr
Poznaj C++ w$ godziny0108 Więcej o klasach 95 Więcej o klasach 95Dlaczego wykorzystywać kompilator d
Poznaj C++ w$ godziny0174 Referencje 163 Linie 24-26 zamieniają wartości. Efekt zamiany wypisywany j
Poznaj C++ w$ godziny0243 Dziedziczenie 235 Ten program nie wypisuje nic na ekranie, gdyż jest jedyn
Poznaj C++ w$ godziny0251 Dziedziczenie 243 Zauważ, że w linii 74, domyślny konstruktor klasy Pies w
16    Zagadnienia wprowadzające d) sposoby normowania spraw gospodarczych należących
Poznaj C++ w$ godziny0241 Dziedziczenie 233 Dziedziczenie 233 Rysunek 16.1 Hierarchia zwierzątKróles
Poznaj C++ w$ godziny0037 Program w C++ 21 16:    cout « "Wywołanie funkcji Add(
Poznaj C++ w$ godziny0055 40 Godzina 4EFEKT DZIAŁANIA; a: Ob: 0x: Oy: 35 a: 9 b: 7 x: 16 y: 16 W lin
Poznaj C++ w$ godziny0065 50 Godzina 4 IA: Podaj dwie liczby. Pierwsza: 10 Druga: 2 Dzieła sie
Poznaj C++ w$ godziny0084 70 Godzina 5 70 Godzina 5 8: 9: 10 11 12 13 14 15 16 17 18 19 20
Poznaj C++ w$ godziny0100 86 Godzina 6 86 Godzina 6 11 12 13 14 15 16 17 18 19 20
Poznaj C++ w$ godziny0121 Zaawansowane sterowanie programem 109 W liniach 12-15 wprowadzamy wartości
Poznaj C++ w$ godziny0122 110Godzina 8 duża liczbę: "; wartość pomijania: "; wartość
Poznaj C++ w$ godziny0140 Wskaźniki 129 Wskaźniki 129 13 14 15 16 17 18 cout « "longVar: "
Poznaj C++ w$ godziny0231 222 Godzina 15 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Poznaj C++ w$ godziny0238 Dziedziczenie i polimorfizmGodzina 16    Dziedziczenie 17 &

więcej podobnych podstron