在创建子类对象时,会自动调用父类的构造方法。如果父类有多个构造方法,那这个调用的父类构造方法是哪个呢.
最后一条有说,如果子类没有明确显示调用父类方法,则调用的是父类的无参方法;有明确显示调用父类方法则根据方法名,参数来决定调用是父类哪一个方法;(提示一点:如果没有明确显示调用父类方法,则父类必须包含无参构造方法)
super其实也是方法调用,也是根据传参数量和类型来匹配调用的参数的。如果父类中有多个构造方法,那么如果你在子类构造方法中显示写了super()的话,就会根据你的super方法中传的参数来调用对应的父类构造方法
假如说父类有三个构造方法:
Dog dog =new Dog(); ①这种情况是调用父类的无参构造。
Dog dog =new Dog("哈士奇"); ②这种情况是调用父类的带一个参数构造方法。
Dog dog =new Dog("哈士奇","男"); ③这种情况是调用父类的带两个参数构造方法。
加油哦!
永远先调用父类无参的构造方法,视频里最后,如果父类里没有无参的构造方法,那么,编译报错
你说的父类构造方法是 这个父类有不同参数的构造方法吧 子类调用父类的构造方法默认是super() 如果你想调父类别的构造方法 子类调用的时候传参数 根据参数是什么类型调用的就是那个父类的构造方法