public class Demo1 {
public static void main(String[] args) {
Fu f1 = new Fu();
f1.show("aa");//编译通过
System.out.println("----------");
Fu f2 = new Zi();
f2.show("aa");//编译通过
System.out.println("----------");
Zi z = new Zi();
// z.show("aa");//编译失败
}
}
class Fu {
public void show(String...args) {
System.out.println("Fu.show()运行了");
}
}
class Zi extends Fu {
@Override
public void show(String[] args) {
System.out.println("Zi.show()运行了");
}
}就是上面这一段,父类有个带可变参数的方法,子类继承并重写该方法,但是子类参数改为数组按说多态Fu f2 = new Zi();
f2.show("aa");编译看左边,运行看右边才对,为什么运行时不会出错,而且确实执行了子类的show方法?
添加回答
举报
0/150
提交
取消