关于父类可变长参数,子类继承的问题

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

kaguya
浏览 1382回答 1
1回答

煎蛋的少年

"aa"是一个string,不是string[] 。
打开App,查看更多内容
随时随地看视频慕课网APP