繼承(inheritance)是面向對象編程的核心機制之一,沒有使用繼承的程式設計,就不能成為面向對象的程式設計。 1.繼承的定義 特殊類的對象擁有一般類的全部屬性與行為,稱為特殊類對一般類的繼承。一個類可以是多個一般類的特殊類,也可以從多個一般類中繼承屬性與行為,但在java語言中,不允許一個類從 ...
繼承(inheritance)是面向對象編程的核心機制之一,沒有使用繼承的程式設計,就不能成為面向對象的程式設計。
1.繼承的定義
特殊類的對象擁有一般類的全部屬性與行為,稱為特殊類對一般類的繼承。一個類可以是多個一般類的特殊類,也可以從多個一般類中繼承屬性與行為,但在java語言中,不允許一個類從多個一般類中繼承屬性與行為,即在java語言中,只支持單繼承。
在軟體開發中,通過繼承機制,可以利用已有的數據類型來定義新的數據類型。所定義的新的數據類型不僅擁有新定義的成員,而且還同時擁有舊的成員。因此,類的繼承性使所建立的軟體具有開放性開放性、可擴充性,這是信息組織與分類的行之有效的方法,通過類的繼承關係,使公共的特性能夠共用,簡化了對象、類的創建工作量,增加了代碼的可重用性。
java 中繼承使用關鍵字extends ,語法如下:
[類修飾符] class 子類名 extends 父類名{ 語句; }
在java中,java.lang.Object 類是所有java類的最高層父類,是唯一一個沒有父類的類。如果在類的聲明中未使用extends 關鍵字指明其父類,則預設父類為Object 類。java中的類的繼承關係形成了以Object 類為樹根的樹狀層次結構。例:
public class text{ ......; }
等價於
public class text extends Object{ ......; }
示例:
//Person public class Person{ String name; int age; void eat(String s){ System.out.println(s); } void sleep(String s){ System.out.println(s); } } //Teacher public class Teacher extends Person{ int salary; String school; void teach(String s){ System.out.println(s); } public static void main(String[] args){ Teacher t = new Teacher(); t.name = "張三"; //實例化Teacher 類對象t System.out.println("教師"+t.name); t.eat("吃"); //使用從父類繼承來的成員方法eat() t.sleep("睡"); //使用從父類繼承來的成員方法sleep() t.teach("上課"); //使用在Teacher類中定義的teach()方法 } }
註:成員變數和成員方法可以被繼承,但是構造方法不能被繼承。