1. Bálnák és tehenek
Íme egy érdekes állattani tény: a tehén sokkal közelebb áll a bálnához, mint például a vízilóhoz. Kiderült, hogy a tehenek és a bálnák viszonylag közeli rokonok.

Nézz ide. Beszéljünk a polimorfizmusról – az OOP egy másik nagyon hatékony eszközéről . Négy funkciója van.
2. Az öröklés nem csodaszer
Képzeld el, hogy írtál egy Cow
osztályt egy játékhoz. Számos területe és módszere van. Ennek az osztálynak az objektumai sokféle dolgot tudnak végezni: sétálni, enni és aludni. A tehenek harangot is viselnek, ami megszólal, amikor sétálnak. Tegyük fel, hogy mindent a legapróbb részletekig megvalósítottál az osztályban.
Aztán jön az ügyfele, és azt mondja, hogy szeretne kiadni egy új játékszintet, amelyben minden akció a tengeren játszódik, és a főszereplő egy bálna.
Elkezdesz tervezni egy Whale
osztályt, és rájössz, hogy az csak kis mértékben különbözik az Cow
osztálytól. Mindkét osztály logikája nagyon hasonló, és úgy dönt, hogy öröklést használ.

Az Cow
osztály ideális a szülő osztály szerepének felvállalására: minden szükséges változóval és metódussal rendelkezik. Csak annyit kell tennünk, hogy a bálnának úszni kell. De van egy probléma: a bálnádnak lábai, szarvai és harangja van. Végül is ez a funkció az Cow
osztályon belül van megvalósítva. Mit lehet itt tenni?

3. Módszer felülbírálása
A módszer felülbírálása a segítségünkre van. Ha olyan metódust örököltünk, amely nem egészen azt csinálja, amit szeretnénk az új osztályunkban, akkor ezt a metódust lecserélhetjük egy másikra.

Hogyan történik ez? A leszármazott osztályunkban ugyanazt a metódust deklaráljuk, mint a felülbírálni kívánt szülő osztály metódusát. Ebbe írjuk az új kódunkat. És ennyi – olyan, mintha a régi metódus a szülőosztályban egyszerűen nem létezne.
Ez így működik:
Kód | Leírás |
---|---|
|
|
|
Ez a kód a következő szöveget jeleníti meg a képernyőn:
|
|
Ez a kód a következőket jeleníti meg a képernyőn:
|
Az osztály öröklése Cow
és a printName
metódus felülbírálása után az Whale
osztály valójában a következő adatokat és metódusokat tartalmazza:
|
Egyetlen régi módszerről sem tudunk. |
GO TO FULL VERSION