1. 程式人生 > 其它 >Java基礎_繼承與重寫

Java基礎_繼承與重寫

技術標籤:學習java

Day_09 super,this關鍵字

一.super關鍵字
1.通過super關鍵字可以使用父類的內容。
2.super代表父類的一個引用物件。
3.如果用super關鍵字,必須出現在呼叫位置第一行。

二.方法的重寫
1.繼承後,子類就擁有了父類的功能。
2.在子類中,可以新增子類特有的功能,也可以修改父類的原有功能。
3.子類中方法與父類完全一致時,會發生覆蓋操作。
4.父類中的私有方法不能被重寫。
5.子類重寫父類方法時,修飾符許可權要大於父類的。

三.成員變數的使用

public class Extends_Variable {

	public static
void main(String[] args) { Sub s= new Sub(); s.show(); } } class Fu{ int number = 20; } class Sub extends Fu{ int number; public void show() { int number = 9; System.out.println(number);//變數的就近原則。 System.out.println(this.number);//呼叫本類的成員變數。 System.out.println(
super.number);//呼叫父類的成員變數。 } }

四.成員方法的使用

public class Extends_Method {

	public static void main(String[] args) {
		
		Sub2 s = new Sub2();
		
		s.testShow();//呼叫普通方法。
		s.eat();//呼叫重寫方法。

	}

}

class Fu2{
	
	public void show() {
		System.out.println("爸爸展示");
	}
	
	public void eat() {
		System.
out.println("爸爸吃"); } } class Sub2 extends Fu2{ public void testShow() { super.show();//呼叫父類的方法。 } public void eat() {//方法的重寫。 System.out.println("兒子吃肉"); } }

五.構造方法的使用
1.子類建立物件時,預設訪問父類的無參構造方法。
2.在構造方法的第一行有一條預設語句:super()。
3.父類沒有無參構造,可用super呼叫父類其他構造。

六.構造方法的使用

public class Extends_Construct {

	public static void main(String[] args) {
		
		Sub3 s = new Sub3();//建立子類物件,在呼叫子類午餐夠早之前,會先去呼叫父類的無參構造。

	}

}

class Fu3{
	
	/*public Fu3() {
		System.out.println("Fu3的無參構造方法");
	}*/
	
	public Fu3(String name) {
		System.out.println("Fu3的含參構造方法" + name);
	}
	
}

class Sub3 extends Fu3{
	
	public Sub3() {
		super("Yan Dexuan");//呼叫父類的含參構造
		System.out.println("Sub3的無參構造方法");
	}
	
	/*public Sub3(String name) {
		this();//呼叫本類的無參構造。
		System.out.println("Sub3的含參構造" + name);
	}*/
	
}

七.this和super的區別
1.this代表對本類物件的引用,super代表父類物件的引用。
2.this用於區分區域性變數和成員變數,super用於區分本類變數和父類變數。
3.this.成員變數,this.成員方法(),this(引數)代表呼叫本類內容。super.成員變數,super.成員方法,super(引數)代表呼叫父類內容。
4.this和super不可同時出現在同一個構造方法中,兩者出現都必須放在構造方法內的第一行,因此不能同時出現。

八.重寫與過載的區別
1.過載:指同一個類中的多個方法具有相同的名字,但這些方法具有不同的引數列表,即引數數量或引數型別不能完全相同。

2.重寫:存在於子類和父類之間,子類定義的方法與父類中的方法具有相同的方法名,相同的引數列表以及相同的返回值型別。

3.重寫是父類與子類之間多型性的一種表現,過載是一類中多型性的一種表現。