Java继承中子类与父类构造方法的关系

面向对象(继承中构造方法的关系)

  • A:案例演示
    • 子类中所有的构造方法默认都会访问父类中空参数的构造方法(而且还是首先访问父类中的构造方法,再完成自己的构造方法)
  • B:为什么呢?
    • 因为子类会继承父类中的数据,可能还会使用父类的数据。

    • 所以,子类初始化之前,一定要先完成父类数据的初始化。

    • 其实:

      • 每一个构造方法的第一条语句默认都是:super(); 访问Object类的构造方法,Object类为最顶层的父类。
class Demo5_Extends {
	public static void main(String[] args) {
		Son s = new Son();
	}
}


class Father extends Object {
	public Father() {
		super();
		System.out.println("Father 的构造方法");
	}
}

class Son extends Father {
	public Son() {
		super();			//这是一条语句,如果不写,系统会默认加上,用来访问父类中的空参构造
		System.out.println("Son 的构造方法");
	}
}
  • 输出结果为:
    Father 的构造方法
    Son 的构造方法
  • 简而言之:
    父类有自己的无参构造方法
    子类也有自己的构造方法
    子类继承父类时必须首先执行完父类的构造方法
    即使没有super();语句,系统也会默认添加,
    其实父类的构造方法中也有默认的super语句,为object类的构造方法

猜你喜欢

转载自blog.csdn.net/weixin_43502415/article/details/89417088