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方法?