- Java面向對象軟件開發
- 姚駿屏 汪衛星主編
- 588字
- 2018-12-29 19:04:16
2.2.2 類繼承的實現
Java中的繼承是通過extends關鍵字來實現的,在定義新類時使用extends關鍵字指明該類的父類,這樣就在兩個類之間建立了繼承關系。
1.子類聲明
[修飾符] class 子類名 extends 父類名 { // 類頭的定義 成員變量聲明; // 類體的定義 成員方法定義; }
一般在類聲明中,加入extends子句來創建一個類的子類,extends后即為父類名。若父類名又是某個類的子類,則新定義的類也是其父類的父類的(間接)子類,其層次不限。若無extends子句,則該類為java.lang.Object的子類。
2.類繼承的傳遞性
類繼承具有傳遞性,即子類繼承父類的所有非私有成員,也繼承父類的父類直至祖先所有的非私有成員。繼承是傳遞的,這正體現了大自然中特殊與一般的關系。
【例2-5】 設計一個長方體類Cube,它繼承自矩形類Rectangle,它除了有矩形類的長、寬屬性和計算面積的方法外,還有表示長方體高的成員變量height以及計算長方體體積的方法volume()。
// 矩形類 class Rectangle { double length; // 長 double width; // 寬 double area(){ // 求長方形的面積 return length * width; } void setDim(double w,double l){ // 設置長方形的長和寬 width = w; length = l; } } // 長方體類,繼承于Rectangle類 class Cube extends Rectangle { double height; // 高 public Cube(double width,double length,double height){// 構造方法 this.width=width; this.length=length; this.height = height; } double volume(){ // 求長方體的體積 return area()*height; } } //主類(擁有main方法的類) public class Test { public static void main(String[] args) { Cube c = new Cube(1, 2, 3); System.out.println("長: " + c.length + "\t寬: " + c.width + "\t高: "+ c.height); System.out.println("長方體的體積: " + c.volume()); } }
該程序的運行結果如下:
長:2.0 寬:1.0 高:3.0 長方體的體積: 6.0
從這個例子可以看出,子類沒有再寫計算面積的方法,但是卻可以直接使用該方法,因為子類從父類將該方法繼承了下來。
推薦閱讀
- 測試驅動開發:入門、實戰與進階
- Visual Studio 2012 Cookbook
- Python從小白到大牛
- JavaScript 網頁編程從入門到精通 (清華社"視頻大講堂"大系·網絡開發視頻大講堂)
- Dependency Injection in .NET Core 2.0
- Learning SQLite for iOS
- Python神經網絡項目實戰
- QTP自動化測試進階
- AutoCAD 2009實訓指導
- Mastering Python Design Patterns
- R的極客理想:量化投資篇
- Android高級開發實戰:UI、NDK與安全
- Unity 3D UI Essentials
- Enterprise Application Architecture with .NET Core
- Spark for Data Science