Java中的繼承 過載 覆蓋

2021-06-21 12:55:12 字數 1829 閱讀 6240

第一節 繼承的概念

1.1.1 為什麼使用繼承

使乙個類的資料成員和成員方法可以被另乙個類(派生類或子類)重用。繼承的特性實現了真正意義上的**復用,子類可以從父類繼承所有非private的資料成員和成員方法,以體現其共性。在子類中也可以新定義一些自己特有的資料成員和成員方法,以體現其個性。

1.1.2

繼承的格式: class 子類名  extends 父類名{ }

繼承通過extends關鍵字來實現的。

第二節 子類和父類的關係

2.2.1 方法之間

方法覆蓋是物件導向語言的特性,即父類中的乙個方法在子類中獲得重新定義,但是方法名、引數列表和返回值均不變。

2.2.2 屬性之間

如果我們在子類定義了與父類相同的屬性,那麼我們稱之為屬性(資料成員)的隱藏。

2.2.3 構造器之間

如果子類沒有定義自己的構造方法,則它將自動呼叫父類的無引數的構造器。如果子類自己定義了構造器,則在建立物件時,它將先執行自父類的無引數的構造器,然後再執行自己的構造器。

第四節 super的意義和用法

4.4.1 定義

super是乙個關鍵字,代表父類物件的引用。

4.4.2 用法

(1)用來訪問直接父類隱藏的(屬性)資料成員,其使用形式如下:

super.資料成員;

(2)用來呼叫直接父類中被覆蓋的成員方法,其使用形式如下:

super.成員方法(引數);

(3)用來呼叫直接父類的構造器,其使用形式如下:

super(引數)。

注意:super必須放在呼叫其構造器中的第一行,而且子類中覆蓋方法可以通過 super(…) 來訪問父類中被覆蓋的方法,但只能訪問其直接父類,而不能跨級訪問。

第五節 覆蓋與過載

5.5.1 覆蓋的概念

方法覆蓋是物件導向語言的特性,即父類中的乙個方法在子類中獲得重新定義,但是方法名、引數列表和返回值均不變。

5.5.2 覆蓋的規則

(1)覆蓋的方法之間必須擁有相同的方法名和引數列表,即要求引數列表中引數的個數、排列順序以及引數的型別要相同。注意,引數的名稱是否相同,不是覆蓋的決定因素;

(2)覆蓋的方法之間,其返回型別必須相同;

(3)乙個靜態方法只能被覆蓋方法為乙個靜態方法,但是不能被覆蓋為乙個非靜態方法;

(4)父類中被子類覆蓋的方法,在每乙個子類中,最多只能被覆蓋一次;

(5)覆蓋方法的訪問控制修飾符所定義的訪問控制不能小於父類中被覆蓋方法的訪問控制修飾符定義的範圍,即覆蓋方法不能比原有方法訪問範圍窄;

(6)覆蓋方法宣告的丟擲異常,只能是被覆蓋方法丟擲異常的子類,或者一樣,或者不丟擲任何異常。

5.5.3  過載的概念

方法過載是程式語言均有的特性,與物件導向語言無關,指多個方法擁有同乙個名字,但每個方法都有一套自己的不同與其他同名方法的引數列表,這樣編譯器可以根據不同的引數列表來呼叫相應的方

5.5.4 過載的規則

(1)過載的方法之間必須擁有不同的引數列表,即要求引數列表中引數的個數、排列順序或型別不同。引數的名稱是否相同,不是過載的決定因素;

(2)過載的方法必須在同乙個類中定義,包括繼承自父類中的方法,並且有兩個或兩個以上的同名、不同引數列表的方法存在;

(3)過載方法的返回型別、訪問修飾符以及丟擲的異常,都不是過載方法判斷的決定因素;

(4)過載方法之間可以互相呼叫,如同不同方法的呼叫,只要明確引數列表即可;

(5)乙個靜態方法既可以被過載為乙個靜態方法,也可以被過載為乙個非靜態方法,因為過載方法本質上是不同的方法;

(6)過載方法之間對修飾符和丟擲的異常無限制,而覆蓋方法之間對修飾符和丟擲的異常具有限制條件,原則上要保持擴充套件性滿足子類對父類的繼承擴充套件的物件導向的特性。

虛繼承 過載 覆蓋 隱藏

關於c 中的虛擬繼承的一些總結 1.為什麼要引入虛擬繼承 虛擬繼承是多重繼承中特有的概念。虛擬基類是為解決多重繼承而出現的。如 類d繼承自類b1 b2,而類b1 b2都繼承自類a,因此在類d中兩次出現類a中的變數和函式。為了節省記憶體空間,可以將b1 b2對a的繼承定義為虛擬繼承,而a就成了虛擬基類...

Java 繼承 過載 重寫 多型

父類 class engineer public engineer int no,string name,string entertime public void showinfo get和set方法省略 class softengineer extends engineer public soft...

java 封裝 繼承 過載 重寫

目的 為了維護程式安全穩定性,保護底層資料 行為 一切為了維護程式的安全穩定性,保護底層資料的行為,都稱之為封裝。具體體現 私有屬性,公有方法 私有構造,靜態方法返回類物件 內部類 並列內部類包含內部類 public 該類和非該類均可訪問 private 只有該類可訪問 protect 該類及其子類...