Есть ли способ использования литья, поэтому метод m1()
выполняется в классе I1
для печати In I1 class
? Я не хочу, чтобы он запускал переопределенный метод.Как применять метод суперкласса
class TestClass extends I1 implements I2{
public void m1() { System.out.println("Hello"); }
public static void main(String[] args){
I1 tc = new TestClass();
tc.m1();
}
}
class I1{
int VALUE = 1;
public void m1(){System.out.println("In I1 class");}
}
interface I2{
int VALUE = 2;
void m1();
}
Я думал ((I1) tc) .m1(); будет работать, но он по-прежнему печатает «Привет» – Mel
Нет, это будет большой недостаток безопасности. Аналогичный вопрос объясняет, почему 'super.super' также невозможно: http://stackoverflow.com/questions/586363/why-is-super-super-method-not-allowed-in-java – Pshemo
Вы не можете этого сделать. [Здесь] [1] объясняет, почему. [1]: http://stackoverflow.com/a/22874698/4228138 –