class one {
public void show(){
System.out.println("one");
}
}
class two extends one{
public void show(){
System.out.println("two");
}
}
public class Test extends two
{
public static void main(String[] args)
{
Test t = new Test();
t.show(); //打印two
//想调用one的show怎么做呢
}
}
------解决思路----------------------
那似乎不可行啊,既然类已经是你定义过并且决定了改写掉继承来的,那就不要再想着祖宗的那份啊。这只能说明你决定改写继承而来的方法时的决定是错误的。
------解决思路----------------------
java 语言没这功能,C++可以!
------解决思路----------------------
子类已经重写父类的方法了,没法这样用
------解决思路----------------------
可以调用的。。。 看我的
t.getClass().getSuperclass().getSuperclass().getDeclaredMethod ("show").invoke( t.getClass().getSuperclass().getSuperclass().newInstance(), null);
------解决思路----------------------
因为你子类重写父类方法,所以子类的]对象将无法访问父类中被重写的方法,但可以在子类方法中调用父类中被重写的方法。可以这样写:super.show();
super不能出现在static修饰的方法中
------解决思路----------------------
这种情况,你既然能获得直接new 子类(),那么也 能 直接 new 父类();
完全没必要用用反射了,直接new父类 调用就是了.
------解决思路----------------------
直接new父类 也可以打到这个输出效果,但是没有灵活性了,没有扩展性。因为指明父类编译级了。。而是用superclass,是运行时,有动态性。。