基於繼承的構造方法

  1. 當創建一個子類對象時,會先調用父類的構造方法,再調用子類的構造方法
  2. 每一個子類的構造方法默認都會調用父類的無參構造方法
  3. 當父類沒有無參構造時,子類必須手動調用父類構造方法
  4. super語句和this語句一樣,必須寫在第一行
  5. 子類的每一個構造方法都必須直接或間接調用父類構造方法
class Person{
	String name;
	int age;
	Person(String name){
		this.name=name;
	}
	Person(String name,int age){
		this(name);
		this.age=age;
	}
}
class Student extends Person{
	Student(String name){
		super(name);
	}
	Student(String name,int age){
		//這裏相當於super(name,age);
		this(name);
		this.age=age;
	}
}
class Fu{
	Fu(){
		System.out.println("父類無參構造");
	}
	void show(){
		System.out.println("父類show方法");
	}
}
class Zi extends Fu{
	String name;
	Zi(){
		System.out.println("子類無參構造");
	}
	Zi(String name){
		System.out.println("子類含參name構造");
		this.name=name;
		}
	}
public class Test{
	public static void main(String[] args){
		//子類創建對象,先調用父類的無參構造,再調用子類的無參構造,之後調用繼承的父類的show方法
		Zi zi= new Zi();
		zi.show();
		//子類創建對象,先調用父類的無參構造,再調用子類的一參構造
		Zi zi1= new Zi("曹操");
		//子類創建對象,先調用父類的無參構造,父類沒有無參構造,子類使用super手動調用父類的一參構造
		Student s1=new Student("劉備");
		System.out.println(s1.name);
		//子類創建對象,先調用父類的無參構造,父類沒有無參構造,子類使用super手動調用父類的兩參構造
		Student s2=new Student("關羽",20);
		System.out.println(s2.name+s2.age);
	}
}

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章