#28 PiranhaGreg
Myslel jsem si, že s tím někdo přijde, protože i mně to proběhlo hlavou.
Jde o to, že při správném používání dědičnosti současně využíváš polymorfismus:
Rodič objekt = new Potomek(...);
Jako rodičovská třída má být taková, která je co nejblíž třídě Object, ale aby splňovala požadované rozhraní. Už mnohokrát jsem na levé straně použil třídu Object, protože jsem nic speciálnějšího nepotřeboval - stačilo mi překrýt některé standardní metody třídy Object a bylo to.
Stejně dobře může být na levé straně místo třídy nějaké rozhraní. Můžeš pak využívat nejen standardní metody třídy Object, ale i metody definované v tom rozhraní.
Proč to všechno? Abys mohl s takovými objekty pracovat jednotně. Je jedno, které třídy je potomkem, každý objekt má například metodu ToString(), která ti velmi dobře poslouží při prezentaci objektu. Klidně můžeš napsat příkaz
Console.WriteLine(objekt);
a víš, že se ti nějakým způsobem vypíše. Pokud se ti výpis nelíbí, stačí jen napsat metodu ToString() do třídy, podle které byl vytvořen ten objekt tak, aby se ti výpis líbil.
Je toho na celý článek, co všechno se s tím dá dělat.