У меня есть следующая (сторонняя) структура класса. Мы будем называть сторонний проект ProjectSeriously
, и обратите внимание, что я использую System.out.println
вместо других сложных функций (100 строк строк кода).Позвоните super.super.method, пропуская super.method
class A {
public void hi() {
// Do an important thing
System.out.println("Important thing A");
}
}
class B extends A {
public void hi() {
// Do some terrible, terrible things
System.out.println("TERRIBLE THING B");
// Do that important thing
super.hi();
}
}
Теперь я хочу, чтобы написать это (это не действует Java):
class C extends B {
public void hi() {
// Do some not-so-terrible things
System.out.println("Ok thing C");
// Do that important thing
super.super.hi();
}
}
Я должен передать instanceof
В какой-то другой части этого замечательного проекта, ProjectSeriously
. Увидев, что это общественные методы, я чувствую, что это должно быть возможно.
см. [Почему super.super.method(); не разрешено в Java?] (http://stackoverflow.com/q/586363/217324) –
http://stackoverflow.com/questions/586363/why-is-super-super-method-not-allowed-in- java предложит вам выполнить миссию невозможно ... –
Если вам действительно нужно это сделать, посмотрите, сможет ли [этот ответ использовать отражение] (http://stackoverflow.com/a/2692379/1798593) работать в вашем случае , –