w "Język programowania Java ™, Fourth Edition" Ken Arnold, James Gosling, David Holmes, jego wspomniano, że:Java Interfejs: dziedziczenie, nadrzędne i przeciążenia Metody
ustęp: (4.3.2) "Podobnie, jeśli interfejs dziedziczy więcej niż jedną metodę z tą samą sygnaturą lub jeśli klasa implementuje różne interfejsy zawierające metodę z tym samym podpisem, istnieje tylko jedna taka metoda. Implementacja tej metody jest ostatecznie zdefiniowana przez klasa implementująca interfejsy i nie ma tam niejasności.Jeśli metody mają ten sam podpis, ale różne typy zwracania, wówczas jeden z typów zwracanych musi być podtypem wszystkich pozostałych, w przeciwnym razie wystąpił błąd podczas kompilacji. Realizacja musi zdefiniować metodę, która zwraca to wspólne podtyp „.
Czy ktoś może dać mi jakiś przykład kodu, który usprawiedliwia punkty powyższym akapicie?
Starałem się napisać kod i sprawdzić, co jest wymienione ale jestem coraz czasie kompilacji błąd sub-interface ukrywa metodę interfejsu podstawa więc może tylko wdrożyć metodę sub-interface.
góry dzięki. -Arun
można wyświetlić kod? –
opublikuj swój kod i swój błąd kompilatora ... daj nam coś, aby (a) powtórzyć problem; i (b) jechać stamtąd. – corlettk
Naprawdę przepraszam - próbowałem przetestować to, co wspomniano w powyższym akapicie, używając j2sdk1.4.2_08 - Nie zdawałem sobie sprawy, że książka jest napisana dla JDK1.5 Oznacza to, że jeśli skompilujesz fragment kodu przez "Daniela Schnellera" używając JDK1.4 otrzymasz "ImplementationOfAandB.java:17: methodB() w ImplementationOfAandB nie może zaimplementować metody B() w InterfaceA; próbuje użyć niekompatybilnego typu" return kompilacji ", podczas gdy z JDK1.5 po prostu działa w porządku. – akjain