繼承的特點

2021-09-29 09:08:33 字數 1631 閱讀 4907

子父類出現後,類成員的特點:

類中成員:

1,變數。

2,函式。

3,建構函式。

1,變數

如果子類**現非私有的同名成員變數時,

子類要訪問本類中的變數,用this

子類要訪問父類中的同名變數,用super。

super的使用和this的使用幾乎一致。

this代表的是本類物件的引用。

super代表的是父類物件的引用。

2,子父類中的函式。

當子類出現和父類一模一樣的函式時,

當子類物件呼叫該函式,會執行子類函式的內容。

如同父類的函式被覆蓋一樣。

這種情況是函式的另乙個特性:重寫(覆蓋)

當子類繼承父類,沿襲了父類的功能,到子類中,

但是子類雖具備該功能,但是功能的內容卻和父類不一致,

這時,沒有必要定義新功能,而是使用覆蓋特殊,保留父類的功能定義,並重寫功能內容。

覆蓋:1,子類覆蓋父類,必須保證子類許可權大於等於父類許可權,才可以覆蓋,否則編譯失敗。

2,靜態只能覆蓋靜態。

過載:只看同名函式的引數列表。

重寫:子父類方法要一模一樣。

3,子父類中的建構函式。

在對子類物件進行初始化時,父類的建構函式也會執行,

那是因為子類的建構函式預設第一行有一條隱式的語句 super();

super():會訪問父類中空引數的建構函式。而且子類中所有的建構函式預設第一行都是super();

為什麼子類一定要訪問父類中的建構函式。

因為父類中的資料子類可以直接獲取。所以子類物件在建立時,需要先檢視父類是如何對這些資料進行初始化的。

所以子類在物件初始化時,要先訪問一下父類中的建構函式。

如果要訪問父類中指定的建構函式,可以通過手動定義super語句的方式來指定。

注意:super語句一定定義在子類建構函式的第一行。

子類的例項化過程。

結論:子類的所有的建構函式,預設都會訪問父類中空引數的建構函式。

因為子類每乙個建構函式內的第一行都有一句隱式super();

當父類中沒有空引數的建構函式時,子類必須手動通過super語句形式來指定要訪問父類中的建構函式。

當然:子類的建構函式第一行也可以手動指定this語句來訪問本類中的建構函式。

子類中至少會有乙個建構函式會訪問父類中的建構函式。

final關鍵字

final : 最終。作為乙個修飾符,

1,可以修飾類,函式,變數。

2,被final修飾的類不可以被繼承。為了避免被繼承,被子類複寫功能。

3,被final修飾的方法不可以被複寫。

4,被final修飾的變數是乙個常量只能賦值一次,既可以修飾成員變數,有可以修飾區域性變數。

當在描述事物時,一些資料的出現值是固定的,那麼這時為了增強閱讀性,都給這些值起個名字。方便於閱讀。

而這個值不需要改變,所以加上final修飾。作為常量:常量的書寫規範所有字母都大寫,如果由多個單詞組成。

單詞間通過_連線。

5,內部類定義在類中的區域性位置上是,只能訪問該區域性被final修飾的區域性變數。

繼承 多型 介面 抽象的特點

繼承的優缺點 優點 新的實現很容易,因為大部分是繼承而來的 很容易修改和擴充套件已有的實現 提高了 的復用性 讓類與類之間產生了關係,是 多型性 的前提 缺點 打破了封裝,因為基類向子類暴露了實現細節 白盒重用,因為基類的內部細節通常對子類是可見的 當父類的實現改變時可能要相應的對子類做出改變 不能...

繼承後訪問成員的特點

繼承後的特點 成員方法 繼承後的特點 構造方法 物件訪問成員變數時,會先在子類中查詢有沒有定義對應的變數,若子類中存在就會就近使用子類中的變數,若子類中沒有定義就會沿著繼承關係往上找有沒有定義相應的變數,若父類中也沒有則編譯不通過。示例 class fuclass ziextendsfu publi...

java中繼承的應用和特點

class fu class zi extends fu 這就實現了繼承通過子類名加上關鍵字extends父類名。a 子類只能繼承父類所有非私有的成員 成員方法和成員變數 b 子類不能繼承父類的構造方法,但是可以通過super關鍵字去訪問父類構造方法。c 不要為了部分功能而去繼承會增加類的耦合性。p...