最近在看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())
返回:
該對象的字符串表示形式。*/