JAVA學習筆記11——繼承+重寫

最近在看JAVA教學的視頻,覺得老師講的很好,同時借用源代碼還有筆記來撰寫本系列博客,記錄自己的學習內容,同時也供看到的人學習。

本篇開始進入面向對象的三大特徵:繼承(inherit)、封裝/隱藏、多態。這裏補充幾個前面有提到的英文縮寫詞的解釋:OOD:面向對象設計、OOA:面向對象分析、OOP:面向對象編程。

首先來介紹繼承,使用方法:[修飾符] class 子類名 extends 父類名{類的內容}。


下面是示例代碼:

public class Animal /*extends Object*/ {
	String eye;
	public void run(){
		System.out.println("跑跑!");
	}
	public void eat(){
		System.out.println("喫喫!");
	}
	public void sleep(){
		System.out.println("zzzzz");
	}
	public  Animal(){
		super();
		System.out.println("創建一個動物!");
	}
}
class Mammal/*哺乳動物*/ extends Animal {
	public void taisheng(){
		System.out.println("我是胎生");
	}
}
class Bird  extends Animal {
	public void run(){
		super.run();   //這一部分調用了父類裏面的這個方法,也會輸出“跑跑”
		System.out.println("我是一個小小小小鳥,飛呀飛不高");  //這部分相當於重寫
	}
	public void eggSheng(){
		System.out.println("卵生");
	}
	public Bird(){
		super();
		System.out.println("建一個鳥對象");
	}
}
public class Test {
<span style="white-space:pre">	</span>public static void main(String[] args) {
<span style="white-space:pre">		</span>Bird b = new Bird();
<span style="white-space:pre">		</span>b.run();
<span style="white-space:pre">	</span>}
}


接下來介紹一下重寫(override),它和重載沒有任何的關係,不要弄混淆了哦~


示例代碼在上面的代碼片中。重寫是子類對父類的重寫,方法簽名和參數列表必須完全與父類的相同,重寫後子類的該新方法將完全在子類new出來的所有對象中均覆蓋父類的老方法,如果想調用父類的老方法則:super.方法名   即可。

本篇最後的內容介紹的是“萬類之祖”——Object類,並附帶簡單介紹一下toString方法。


public class TestObject {
	public static void main(String[] args) {
		Object obj = new Object();
		Object obj2 = new Object();
		System.out.println(obj.toString());
		System.out.println(obj2.toString()); //地址不一樣的,兩個的輸出:[email protected]@6d06d69c
		System.out.println(obj==obj2);
		System.out.println(obj.equals(obj2)); <pre name="code" class="java"><span style="white-space:pre">		Mobile m = new Mobile();
<span style="white-space:pre">		</span>System.out.println(m.toString()); 
<span style="white-space:pre">	</span>}
}</span>
public class Mobile {
<span style="white-space:pre">	</span>public String toString(){
<span style="white-space:pre">		</span>return "我是一部移動電話";  //重寫toString方法
<span style="white-space:pre">	</span>}
}

補充:toString的API文檔介紹:

/*toString
public String toString()返回該對象的字符串表示。通常,toString 方法會返回一個“以文本方式表示”此對象的字符串。結果應是一個簡明但易於讀懂的信息表達式。建議所有子類都重寫此方法。 
Object 類的 toString 方法返回一個字符串,該字符串由類名(對象是該類的一個實例)、at 標記符“@”和此對象哈希碼的無符號十六進制表示組成。換句話說,該方法返回一個字符串,它的值等於: 
getClass().getName() + '@' + Integer.toHexString(hashCode())
返回:
該對象的字符串表示形式。*/



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