Prawdopodobnie nie można wykonać następujących czynności (otrzymuję błąd kompilacji: "Metoda odziedziczona A.doSomthing (int) nie może ukryć publicznej metody abstrakcji w B"):Java: rozszerzenie klasy i implementacja interfejsu, który ma tę samą metodę.
public class A {
int doSomthing(int x) {
return x;
}
}
public interface B {
int doSomthing(int x);
}
public class C extends A implements B {
//trying to override doSomthing...
int doSomthing(int x) {
return doSomthingElse(x);
}
}
Zakładając ja wolno zmieniać ani a, ani B, moje pytanie jest może jakoś zdefiniować C w taki sposób, że będzie dziedziczyć zarówno a i B (załóżmy, że jest to wymagane w przypadku niektórych ram że C będzie zarówno instancją A, jak i B).
A jeśli nie, w jaki sposób obejmiesz to?
Dzięki!
Proszę zgłosić swój błąd. Nie ma tu oczywiście nic złego, z wyjątkiem być może brakującego @Overrides, jeśli używasz 1.6. – bmargulies
@bmargulies, nie ma "public", a zastąpienie jest opcjonalną przykrością. – bestsss