java中这样用super调用父类的隐藏方法

来源:百度知道 编辑:UC知道 时间:2024/06/08 05:02:46
我试过用super调用父类的隐藏方法 但是系统提示 无发从静态上下文中引用非静态变量 super
那个好心的高手说说问题的所在
class fulei
{
public static void wang()
{
System.out.println("父类成员方法输出");
}
int i=2;
}
public class wang30 extends fulei
{
wang30()
{
System.out.println("子类构造方法输出");
}
public static void wang()
{
System.out.println("子类成员方法输出");
}
public static void main(String args[])
{
super.wang();
wang30 hehe=new wang30();
hehe.wang();
}
}
这是我写的原代码

你的子类方法是静态的,而调用的是父类的非静态方法,这是不允许,例如:

public static void methodInChild() {
super.methodInParent();
}

public static void methodInarent() {
//TODO...
}

改正方案:
public static void methodInChild()改为public void methdoInChild

还有一种方案是使用反射,自己查一下相关资料吧。

中国艺术联盟中国艺术联盟