Skip to main content

Co to jest dziedzictwo interfejsu?

Dziedziczenie interfejsu jest mechanizmem w niektórych językach komputerowych, w których określone funkcje są dziedziczone przez klasę, a następnie ta konkretna klasa musi zapewnić implementacje dla tych funkcji, aby zostać ukończone.Interfejsy istnieją tylko w niektórych obiektowych językach programowania.Można je wykorzystać do naśladowania wielokrotnego dziedziczenia, a jednocześnie nie pozwalając klasie na pomnożenie dziedziczenia, ponieważ na ogół nie ma ograniczeń dla liczby interfejsów, od których klasa może odziedziczyć.Oprócz niezamieszkanych metod interfejsy mogą również obejmować stałe publiczne.

W dziedziczeniu interfejsu obiekt, który dziedziczy metodę i stałe, jest uważany za rodzaj obiektu interfejsu.Tak więc, jeśli klasa X odziedziczona po interfejsie Y, każda instancja klasy X byłaby również instancją klasy Y. Staje się to bardziej skomplikowane, gdy dziedziczenie interfejsu klas obejmuje więcej niż jeden odrębny interfejs.Dla każdego dodatkowego odziedziczonego interfejsu, powstała klasa może być uzasadniona jako instancja każdego z nich.Jeśli klasa odziedziczona po dziesięciu różnych interfejsach, obiekty tej klasy mogą być używane jako wystąpienie jedenastu różnych obiektów, w tym samego.

Takie złożone dziedziczenie nie jest często konieczne.Dziedziczenie interfejsu służy do zapewnienia, że klasa ma określony zestaw wymaganych zachowań, a te zachowania umożliwiają wykonanie różnych funkcji, których inaczej nie mogłaby zrobić.Wspólnym tego przykładem jest interfejs ActionListener w Javie, który wymaga klasy wdrożenia tylko jednej konkretnej metody.Udana implementacja tej metody pozwala użytkownikowi kontrolować przyciski, elementy menu lub dowolny inny obiekt okna w klasie w razie potrzeby.Dziedziczenie interfejsu jest stosunkowo prostym sposobem na dodanie złożonej funkcjonalności do klasy, nie martwiąc się o najbardziej skomplikowane problemy z dziedzictwem.

Jedną z największych zalet stosowania dziedziczenia interfejsu jest to, że umożliwia stosowanie określonych obiektów w sensie ogólnym.Ponieważ klasa, która implementuje interfejs, jest instancją tego interfejsu, można ją użyć dowolnego miejsca, wymagana jest instancja tego interfejsu.Na przykład, jeśli klasa A implementuje klasę C, a klasa B implementuje również klasę C, jeśli metoda przyjmuje jako parametr instancję klasy C, instancja klasy A lub instancja klasy B byłaby dopuszczalnym parametrem do użycia.Interfejsów nie można utworzyć samodzielnie, ponieważ nie są kompletne, więc nigdy nie byłoby obiektu, który byłby wyłącznie instancją klasy C jako parametr.