关于子类调用父类构造方法的问题

昨天班级有一个小测验,结果自己觉得还不错的错了好几道题,自己总结了一下,主要是子类继承父类时候构造方法的问题不太清楚,今天就总结一下。

1.子类会默认调用父类的无参构造方法

举例来看:

public class Derived extends Base {
       public Derived (String s) {
              System.out.println("这是子类的构造方法");
       }
       public static void main(String [] args) {
              new Derived ("C");
       }
}
class Base {
       public Base() {
           System.out.println("这是父类的构造方法");
       }
     }

上面这段代码结果如下图所示:

关于子类调用父类构造方法的问题

这证明了 子类的构造方法默认首先调用了父类的构造方法。

2.当父类中没有无参构造函数时,子类必须调用父类有参的构造函数,因为1已经证明了 子类默认调用父类的构造方法,如果父类中没有无参的构造函数,就会出现编译错误。

关于子类调用父类构造方法的问题

但是如果调用了父类的有参构造函数就没有错误了。

关于子类调用父类构造方法的问题

今天就到这里了 ,回宿舍了。