Zpo-1-wyk-Slajd18
Dziedziczenie a implementacja interfejsów
Jak wspomniano wcześniej, dziedziczenie i implementacja interfejsów są dwoma sposobami wykorzystania polimorficznego zachowania metod. Warto porównać ich cechy.
Dziedziczenie powoduje przeniesienie z nadklasy do podklasy dwóch elementów: typu oraz implementacji. Pozwala to na ponowne wykorzystanie kodu z nadklasy, ale także ściśle wiąże ze sobą obie klasy
Implementacja interfejsu pełni natomiast tylko jedną z tych ról: przeniesienie typu. Dzięki temu klasy implementujące ten sam interfejs mogą być zróżnicowane w znacznie większym stopniu niż podklasy tej samej nadklasy.
Z zestawienia wynika, że stosowanie interfejsów wyłącznie z punktu widzenia polimorfizmu jest lepszym rozwiązaniem, ponieważ tworzy słabsze powiązanie pomiędzy klasami. Natomiast dziedziczenie pozwala jednocześnie współdzielić kod, co z jednej strony powoduje silne powiązanie pomiędzy klasami, ale w niektórych sytuacjach jest uzasadnione.