Samizdatová skripta

Dědičnost


Příklad dědičnosti:

zapouzření

V jazyce UML se používá pro znázornění dědičnosti šipek, kde šipky směřují od nejnižšího objektu (např.NákladníAuto) k nejvyššímu (Auto), tedy naopak než to mám znázorněné na obrázcích, pro větší srozumitelnost.

Třída NákladníAuto je odvozena od třídy Auto, takže pokud vytvoříme instanci typu NákladníAuto, budeme moci manipulovat jak s metodami

Ale i s metodami předka, protože NákladníAuto je potomek Auta a některé metody jsou veřejné

dědičnost

Dědičnost používáme:

Potomek

Předek

Příklad špatné dědičnosti

Někteří programátoři - začátečníci se pokoušejí doslova „vecpat“ dědičnost všude kde mohou, to, že nějaký objekt může mít více předků, neznamená, že toho náležitě využiji v každé situaci, jako např.:

Příklad špatné dědičnosti

Toto by vedlo v nejlepším případě k chybové hlášce kompilátoru, ale může být i hůře. Chyba je v tom, že v případě, že vytvoříme objekt typu kočka, tak vytváříme zároveň i objekt Zvíře a zároveň i Savce, který je také potomkem Zvířete, takže bychom měli dva objekty Zvíře a jak by asi kompilátor zareagoval na to, kdybychom chtěli zavolat nějakou metodu, či atribut ze superpředka Zvířete?

Hierarchie tříd

Hierarchie tříd


upravit odstranit css

NAVRCHOLU.cz