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();
}
}
这是我写的原代码
那个好心的高手说说问题的所在
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
还有一种方案是使用反射,自己查一下相关资料吧。
中国艺术联盟中国艺术联盟