Obsah
Ačkoli se obě struktury mohou zdát podobné, protože přinutily třídy, které je používají k vytvoření metod, které mají, a používají je tak, aby mohly být platné, mají mezi sebou klíčové rozdíly, které nám mohou poskytnout více světla o tom, jak je můžeme použít .Rozdíly, přestože jsou jemné, nám umožňují použít obě struktury i v kombinaci, tímto způsobem můžeme dosáhnout většího řádu v našem projektu a vytvářet aplikace, které nám umožní lépe reprodukovat objekty skutečného světa v digitálním formátu.
OmezeníHlavní rozdíl vidíme mezi abstraktní třídy a rozhraní je, že první je třída a druhá není, přestože rozhraní má podobnou strukturu čelí omezením, která se nenacházejí v a abstraktní třída.
ProměnnéThe abstraktní třída nemá žádné omezení v používání proměnných, nicméně rozhraní pokud ano, ve skutečnosti musí být všechny proměnné, které použijeme veřejné, statické nebo konečné.
V tomto případě stavitel z abstraktní třída musí být vyvoláno prostřednictvím podtříd, což vylučuje možnost jeho vytvoření prostřednictvím operátora Nový.
V případě rozhraní, to nemůže mít konstruktory, protože to není třída, což nás nutí také zahodit vytváření instancí s operátorem Nový.
MetodyV rozhraní metody musí být veřejný abstrakt Na druhou stranu v abstraktní třídě můžeme bez problémů umístit jakýkoli typ metody, což pro nás znamená ještě jeden rozdíl.
Dalším bodem, který musíme vzít v úvahu, je způsob dědění a implementace, kterého můžeme v těchto dvou strukturách dosáhnout Jáva, víme, že když to uděláme dědictví Ve třídě můžeme dědit pouze přímo z nadřazené třídy, to znamená, že pokud chceme dědit ze dvou různých tříd, musíme vytvořit jako kaskádový efekt, kdy první třída dědí z nadřazené třídy a poté další třída dědí z tím získáte jeho funkčnost a funkčnost jeho nadřazené třídy.
V rozhraní K tomuto problému nedochází, ve skutečnosti můžeme dědit přímo z několika rozhraní, takže pokud chceme získat jejich metody, můžeme to udělat bez problémů.
V případě implementace rozhraní v abstraktní třídě, pokud máme větší svobodu, můžeme v tomto případě implementovat více rozhraní bez jakéhokoli omezení v tomto případě, což nám dává možnost vytvořit takříkajíc komplexnější nadřazené rozhraní. Zde je důležité vědět a vzít v úvahu, že rozhraní není třída, a proto nemůže dědit z jedné, to může dělat pouze dědičnost z jiných rozhraní.
S tímto dokončujeme tento tutoriál, viděli jsme rozdíly v omezeních a implementaci v našich programech těchto dvou struktur v JávaAčkoli oba slouží k modelování a definování chování, každé má svůj vlastní prostor, takže když je lépe známe, budeme se moci rozhodnout, který z nich použijeme v našich programech vytvořených tímto jazykem.Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod