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

构造方法中能初始化其他类么?

我在下面这一段构造器(Constructor) 中间初始化了两个子类对象pas和cg,但是只要有这一段代买,运行的时候就立马报错……这是为什么呢?

public Vehicle() {    
        System.out.println("Vehicle lists:");
        PassengerVehicle pas = new PassengerVehicle();
        Cargo cg = new Cargo();
        String[] list = new String[2];
        list[0]=pas.getname();
         list[1]=cg.getname();
    }


正在回答

1 回答

构造器不能被继承

0 回复 有任何疑惑可以回复我~
#1

我也是猫 提问者

我发现原因了……构造器可以被继承,于是就造成了一个循环初始化……初始化PassengerVehicle时因为没有定义PassengerVehicle的构造器,所以会自动调用父类的构造器,而父类的构造器中又会再次初始化PassengerVehicle……
2017-03-06 回复 有任何疑惑可以回复我~
#2

我也是猫 提问者

刚看了下书,原来不管子类是否有定义构造方法……在创建子类时都会先创建父类的对象再创建子类的对象,所以父类的构造方法是肯定会被调用的,不管子类有没有写构造方法……
2017-03-06 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530629    人
  • 解答问题       6091    个

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

进入课程

构造方法中能初始化其他类么?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信