繼承 多型與介面

2021-10-10 19:07:50 字數 1178 閱讀 3613

一、概念

繼承(單繼承)表示存在於物件導向程式中兩個類之間的一種關係,當乙個類充當另乙個類的子類時就自動擁有了另乙個類的所有非私有屬性和方法,我們就稱這兩個類具有繼承關係。

二、域的繼承與隱藏

1.子類可以無條件的繼承父類的非私有域,即父類的非私有域實際是各個子類都擁有的域。

2.子類還可以定義乙個和從父類繼承來的域的變數完全相同的變數,這種方式稱之為隱藏。當子類執行繼承的父類的方法時處理的是父類的變數,而當子類執行自己定義的方法時所操作的就是自定義的變數而把父類的變數隱藏起來了。

三、方法的繼承與覆蓋

1.父類的非私有方法作為非私有成員可以被子類所繼承,而方法的覆蓋指的是子類重新定義乙個和繼承的父類的同名的方法,此時父類的方法在子類中不復存在,從而實現子類的方法。

注:方法的覆蓋需要注意應該保持和父類完全相同的方法頭部宣告(相同的方法名、返回型別、引數列表)。

2.多型的體現:過載和覆蓋。

四、構造方法的繼承與過載

1.構造方法的過載指的是同乙個類中定義不同引數的多個構造方法以完成不同情況下物件的初始化。乙個類的多個構造方法可以相互呼叫(可以使用this()),

2.構造方法的繼承遵循以下原則:

①子類無條件繼承父類的五引數構造方法

②如果子類沒有定義構造方法,則將父類的無引數構造方法作為自己的構造方法;如果子類定義了構造方法,則先執行父類的無參構造方法再執行自己的構造方法。

③對於父類帶引數的構造方法,子類可用通過自己的構造方法中使用super關鍵字呼叫它,但是這個呼叫語句必須是子類的構造方法的第乙個可執行語句。

五、介面

1.介面是用來實現類間達成共性和多繼承功能的一種結構,乙個類只能繼承乙個類,但是可以實現若干個介面,利用介面實際上就獲得了多個特殊類的屬性,即實現了多繼承。

2.介面(常量和抽象方法組成的特殊類):

[public] inte***ce name [extends 父介面名錶]

歸納:①在類的宣告部分,用implements 宣告需要實現哪些類;

②類在實現抽象方法時,必須用public修飾;

③除抽象類以外,在類的定義部分必須為介面中所有抽象方法定義方法體,且方法首部應該與介面中定義完全一樣。

④若實現某介面的類是abstract的抽象類,則他可以不實現該介面的所有方法,但是對於這個抽象類的任何乙個非抽象類,不允許存在未被實現的介面方法。

注:介面不能被覆蓋。

介面,繼承與多型

1,多型和介面的作用 多型機制的使用可以動態調整物件的呼叫,降低物件之間的依存關係 介面被用來建立類與類之間關聯的標準 2,super關鍵字的作用 用super 呼叫父類的構造方法,super 關鍵字呼叫父類的成員變數和方法 3,重寫,重寫可以選擇擴大方法的修飾許可權 4,當例項化乙個子類物件時,父...

繼承 多型 介面

多型 編譯階段 編譯期間編譯器可以根據選擇引數的型別來選擇使用哪個方法,是因為方法已經通過方法的過載 在同乙個類 裡提前寫好。程式在編譯時,會在編譯型別中檢查是否具有所呼叫的方法。如果編寫 時,使用引用變數呼叫子類中的特有方法,或者呼叫過載了父類中的方法,而父類中找不到該方法,則會報編譯錯誤 執行階...

第10章 介面 繼承與多型 多型

利用多型可以使程式具有良好的擴充套件性,並可以對所有類物件進行通用的處理。如果定義乙個四邊形類,讓它處理所有繼承該類的物件,根據 向上轉型 原則可以使每個繼承四邊形類的物件作為draw 方法的引數,然後在draw 方法中做一些限定就可以根據不同圖形類物件繪製相應的影象,從而更為通用的四邊形類來取代具...