Obsah
Dědičnost je jedním ze způsobů, jak podpořit, že nemusíme příliš pracovat, což nám pomáhá vyhnout se nutnosti několikrát kódovat stejný kód, možná si můžeme myslet, že to můžeme udělat pomocí funkcí, ale co se stane, když máme třídu a chceme udělat velmi podobný, který změní pouze jeden nebo dva aspekty, to je místo, kde to vstupuje do hry.Dědičnost není nic jiného, než předání atributů a metod nadřazené a abstraktní třídy jiné, ať už ji chceme upřesnit, nebo ji učinit mnohem abstraktnější rozšířením jejího spektra působení.
Představme si na chvíli, že potřebujeme vytvořit třídu obdélníků, to je něco docela specifického, protože obdélník je definovaný geometrický tvar, ale přesto má vlastnosti společné s jinými obrázky, co když místo vytvoření konkrétní třídy vytvoříme Figuruje třídu, která zahrnuje společné aspekty a atributy, a poté naše třída obdélníků tyto atributy dědí a pak už jen musíme přidat konkrétní metody a atributy.
Třída není nic jiného než sbírka abstraktně definovaných atributů a metod, na kterých můžeme stavět objekty. Můžeme vidět příklad v reálném životě, pokud vidíme ptáka oknem, musíme vědět, že patří do třídy ptáků, ale pokud je tento pták orlem, říkáme, že je jedním z podtřídních orlů, kteří zase patří do třídy ptáků, a proto můžeme pokračovat ve specifikaci z vyšší abstraktní úrovně (Pták) na konkrétnější úroveň (orel) a atributy orla jsou tím, co ji definuje a odlišuje od ostatních ptáků.
Podívejme se na malý příklad, jak vytvořit naše třídy v Pythonu.
Jak vidíme, definujeme třídu osob a jejím hlavním atributem je jméno, vytvoříme několik metod pro přiřazení a konzultaci jména a metodu pozdravu, která nám umožní přimět objekt vyslovit jeho identifikaci.
Podívejme se, jak by to všechno fungovalo v kontextu jednoduchého programu.
ZVĚTŠIT
Pokud se podíváme na přiřazení, foo = Person (), ve skutečnosti děláme vytvoření objektu typu Person (), takže nyní foo bude mít atributy a přístup k metodám třídy Person.Pak vidíme, že voláme metodu setName () pro dva různé objekty, zde již každý specifikujeme jinými atributy, ale že patří do stejné třídy, něco podobného příkladu orla, že jsme viděli několik odstavců před.
Nakonec při volání metody pozdrav () každý objekt demonstruje svůj rozdíl navzdory tomu, že vychází ze stejného abstraktního původu. Tímto způsobem jsme nemuseli psát definiční kód pro každý objekt, ale jednoduše znovu použít abstraktní kód třídy Person.
Tím tento tutoriál dokončujeme, je to docela teorie, kterou musíme nadále procvičovat a prohlubovat, protože toto je základ objektově orientovaného programování, které nám umožní využít mnoho funkcí Krajta.