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 Cowosztá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 Whaleosztályt, és rájössz, hogy az csak kis mértékben különbözik az Cowosztálytól. Mindkét osztály logikája nagyon hasonló, és úgy dönt, hogy öröklést használ.
Az Cowosztá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 Cowosztá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 printNamemetódus felülbírálása után az Whaleosztály valójában a következő adatokat és metódusokat tartalmazza:
|
Egyetlen régi módszerről sem tudunk. |
GO TO FULL VERSION