Powiedzmy mam następujący interfejs:Jak zastosować więcej ograniczeń dla deklaracji interfejsu w Javie?
interface Mammal {
void marry(Mammal m);
Mammal giveBirthTo();
}
to jednak nie powiedzieć dość dokładnie, czego chcę.
Oczywiście człowiek nie może poślubić psa, ani nie może urodzić kota. Jak mogę osadzić te informacje w interfejsie, aby typ wejścia i typ wyjścia mógł być zmieniany automatycznie po jego zaimplementowaniu?
Czy interfejs nie powinien mieć nazwy "Mammal"? Nie ma powodu do dodawania kolejnego. –
@RafaelWinterhalter, a jak już wspomnę, możesz mieć interfejs 'Mammal' lub abstrakcyjną klasę abstrakcyjnego zwierzęcia w tym szczególnym łańcuchu dziedziczenia. Interfejs 'Marriable' określałby umowę o zawarciu małżeństwa z jednym z twoich gatunków. – Mena
Nie potrzebujesz do tego interfejsu 'Marriable'. Możesz po prostu utworzyć typ rekursywny, jak zasugerowałeś w odpowiedzi, którą właśnie dodałem. –