1. 程式人生 > >初學Java——類和方法(2)繼承

初學Java——類和方法(2)繼承

修改 報告 實現 語句 現在 方式 繼承體系 調用父類 class a

1.繼承可以使你定義一個通用的類(父類),之後擴充該類為一個更加特定的類(子類)。
子類從父類中繼承可訪問的數據域和方法,還可以添加新的數據域和新方法。
語法:public class Subclass extends Superclass;
2.父類中的私有數據域在該類之外是不可訪問的,故不能在子類中直接使用,若父類中
定義了公共的訪問器/修改器,那麽可以通過這種方式來訪問它們。
3.Java不允許多重繼承,一個Java類只能直接繼承自一個父類(單一繼承 simple
inheritance),但多重繼承可以通過接口來實現。
4.super關鍵字
1)super是指這個super關鍵字所在類的父類。
2)兩種用途:
i.調用父類的構造方法;
語法:super(); 或 super(parameters);
必須出現在子類構造方法的第一行。
構造方法鏈:
如果沒有顯式調用重載的構造方法或父類的構造方法,編譯器就會自動把
super()作為構造方法的第一條語句。
如 public ClassName(){

}
等價於public ClassName(){
super();
}
(這個過程可以鏈式傳遞至繼承體系結構的做後一個構造方法被調用為止)
ii.調用父類的方法;
語法:super.methodName(parameters);
註:一般不需要加super,因為子類以及繼承了父類的方法。但在方法重寫的時候
若要調用父類方法,必須加super
方法重寫(method overriding):需要在子類中使用和父類一樣的簽名及一樣
的返回值類型。
使用重寫標註來避免方法重寫與方法重載的混淆錯誤:
重寫標註@override 表示被標註的方法必須重寫父類的一個方法,具有該標註
的方法沒有重寫父類的方法,編譯器將報告一個錯誤。
5.要設計一個可被繼承的類,最好提供一個無參構造方法,避免程序錯誤。
public class Apple extends Fruit{

}
class Fruit{
public Fruit(String name)
{
}
}
由於子類中沒有顯式定義的構造方法,故默認使用無參構造方法,但Fruit中沒有定義
無參構造方法,故會出現編譯錯誤。

初學Java——類和方法(2)繼承