Co je dědičnost rozhraní?

Dědičnost rozhraní je mechanismus v určitých počítačových jazycích, kde určité funkce jsou zděděny třídou, a pak tato konkrétní třída musí implementovat tyto funkce, aby byla úplná. Rozhraní existují pouze v určitých objektově orientovaných programovacích jazycích. Mohou být použity k emulaci vícenásobného dědictví, zatímco ve skutečnosti neumožňují třídě množit zdědění, protože obecně neexistuje žádná omezení pro počet rozhraní, ze kterých může třída zdědit. Kromě neimplementovaných metod mohou rozhraní zahrnovat také veřejné konstanty.

V dědičnosti rozhraní je objekt, který dědí metodu stubs a konstanty, považován za typ objektu rozhraní. Pokud tedy třída X zdědila z rozhraní Y, jakákoli instance třídy X by také byla instancí třídy Y. To se komplikuje, když dědičnost rozhraní třídy zahrnuje více než jedno samostatné rozhraní. Pro každé další zděděné rozhraní lze výslednou třídu legitimně použít jako instanci každého z nich. Pokud třída zdědila z deseti různých rozhraní, mohly by být objekty této třídy použity jako instance jedenácti různých objektů, včetně samotné.

Takové složité dědictví není často nutné. Dědičnost rozhraní se používá k zajištění toho, že třída má specifickou sadu požadovaných chování a tato chování jí umožňují provádět řadu funkcí, které by jinak nemohla dělat. Běžným příkladem je rozhraní ActionListener v Javě, které vyžaduje, aby třída implementovala pouze jednu konkrétní metodu. Úspěšná implementace této metody umožňuje uživateli v případě potřeby ovládat tlačítka, položky nabídky nebo jakýkoli jiný objekt okna ve třídě. Dědičnost rozhraní je relativně jednoduchý způsob, jak přidat třídu složitou funkčnost bez obav z nejsložitějších problémů dědičnosti.

Jednou z největších výhod použití dědičnosti rozhraní je to, že umožňuje použití specifických objektů v obecném smyslu. Protože třída, která implementuje rozhraní, je instancí tohoto rozhraní, může být použita kdekoli, kde je vyžadována instance tohoto rozhraní. Například, pokud třída A implementuje třídu C a třída B také implementuje třídu C, pokud metoda bere jako parametr instanci třídy C, byla by přijatelným parametrem použití instance třídy A nebo instance třídy B . Rozhraní nemohou být instalována sama o sobě, protože nejsou úplná, takže by nikdy nebyl objekt, který by byl čistě instancí třídy C jako parametr.

JINÉ JAZYKY

Pomohl vám tento článek? Děkuji za zpětnou vazbu Děkuji za zpětnou vazbu

Jak můžeme pomoci? Jak můžeme pomoci?