为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

kaguya 2016-10-08 12:43:59
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方法?
查看完整描述

1 回答

?
煎蛋的少年

TA贡献6条经验 获得超1个赞

"aa"是一个string,不是string[] 。
查看完整回答
反对 回复 2016-10-08
  • kaguya
    kaguya
    对啊,可是为什么f2.show(aa);能正常运行子类的show()方法呢?
  • 煎蛋的少年
    煎蛋的少年
    你看下输出信息,f2.show(aa); 执行的是父类的方法,还是子类的方法-0-。 我也理得不是很清楚。
  • 1 回答
  • 0 关注
  • 1418 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信