Co je abstraktní třída?
V objektově orientovaném programování poskytuje abstraktní třída základní třídu, kterou lze použít k poskytnutí částečné implementace a rozhraní dalším třídám. Samy jsou neúplné a používají se v situacích dědičnosti v mnoha programovacích jazycích, jako je Java, C ++ a C #. Jejich použití jako základní třídy znamená, že jsou často označováni jako abstraktní základní třída (ABC).
Abstrakce dat, která je nedílnou součástí objektově orientovaného programování, odstraňuje zbytečné podrobnosti o objektu. V podstatě objekt zužuje na hlavní identifikační charakteristiky. Tyto základní vlastnosti poskytují plán, který lze použít k vytvoření dalších objektů se stejnými vlastnostmi, které se liší pouze v detailech.
Tento plán je definován jako třída. Třídy se používají k zapouzdření kódu, což usnadňuje programátorovi, protože může odkazovat na konkrétní běžné rutiny namísto psaní rutin znovu a znovu. Programátoři vytvářejí podřízené objekty ze tříd a tyto objekty dědí funkce a metody v nadřazené třídě.
Účelem abstraktní třídy je být rámec, na kterém jsou postaveny další třídy. Objekty nelze vytvářet přímo z abstraktní třídy, pouze z podtříd patřících do abstraktní třídy. Aby objekt zdědil z abstraktní třídy, musí být vytvořena podtřída. Objekty vytvořené podtřídy abstraktní třídy dědí vlastnosti této abstraktní třídy.
Každá třída modeluje koncept a abstraktní třídy mají tendenci modelovat více abstraktních konceptů pomocí abstraktních metod. Abstraktní metody jsou podprogramy uvnitř abstraktní třídy, které neobsahují žádnou implementaci. Tyto podprogramy se používají jako zástupné symboly pro přepsání podtřídy nebo objektu navrženého na základě třídy, která obsahuje samotnou abstraktní metodu.
Existují různé metody vytváření abstraktní třídy. Například v C ++ je abstraktní třída vytvořena vývojem třídy s alespoň jednou abstraktní metodou nebo čistě virtuální funkcí. Java používá klíčové slovo „abstraktní“ k označení abstraktní třídy. Nejsou však definovány v programovacích jazycích, které nepodporují myšlenku dědičnosti.
Dědičnost je proces vytváření nových objektů ze tříd, kde nové objekty mohou používat funkce a metody definované v jejich nadřazených třídách, aniž by bylo nutné program přepracovávat. Proto je užitečná abstraktní třída. Podřízené třídy a podřízené objekty těchto podtříd dědí vlastnosti z nadřazené abstraktní třídy. Abstraktní třídy jsou považovány za nadtřídy a jsou na vrcholu hierarchie třídních struktur, takže nemají žádný bod v jazyce, který nepodporuje dědičnost.