public class StaticTest3 //首先说一下 你这个问题属于 多态 的问题
{ //还有你的代码确实是有问题, 编译不通过 ,当子类重写父类方法时,方法头必须一模一样。
public static void main(String[] args) 你的子类方法变成static的了
{
M m = new N();//父类引用指向子类对象
m.output();
} 如果代码正确你的程序的输出结果是: N
} 多态中 父类的引用 只能调用 父类和子类都有的方法, 不能调用子类特有的方法。(你这个父类与子类都有output方法)
class M 在实际的调用中 父类的引用是调用子类对象中的方法 即在这是调用的 N对象中的output()方法。
{
public void output()
{
System.out.println("M");类
}
}
class N extends M
{
public static void output()
{
System.out.println("N");
}
}
|