1. 程式人生 > >Java三大特性之繼承性

Java三大特性之繼承性

一、繼承

        繼承的關鍵字extends,放在一個類名的後面,用extends關鍵字去繼承一個類,被繼承的那個類叫父類(超類、基類)superClass。當前的這個類就叫做子類。

        子類extends繼承父類,就繼承了夫類許可權範圍內所擁有的東西。

  •         繼承的意義:

                    1、提高了程式碼的複用率。

                    2、提高了程式碼的維護性。

                          因為共同的方法放在了同一個父類裡面,方便了管理和修改。

                    3、讓類與類之間產生關係,讓類之間聯絡的更密切。是多型性的前提(宣告父類new子類)

            (*)java支援多層繼承,但不支援多繼承。一個類一次只能有一個父類,但是父類仍然可以再往上繼承父類。

  • 繼承的弊端:

                 1、java只支援單根繼承,不支援多繼承,存在單繼承的侷限性。

                 2、繼承最大的弊端就是耦合度太高。

                 3、子類只能繼承父類成員。比如,子類不能繼承父類的私有成員

  • 什麼時候去用繼承呢?

               採用假設法,當什麼是什麼(...... is .......)的時候採用繼承,比如:程式猿是職業,那麼職業就是父類,程式猿只是職業的一個子類。

  • 子類繼承父類的屬性與方法

            1、屬性

                    當子類自己的屬性與父類的屬性同名時,子類會呼叫自己的屬性,這叫屬性的重寫(覆蓋、覆寫),而不去呼叫父類的該同名屬性。

            2、方法

                    當子類存在與父類同名的方法時,呼叫自己的方法。這叫方法的重寫(覆蓋、覆寫)。

         (*)注意:方法的    覆寫    與    方法的    過載    的區別

                1、覆寫(重寫)

                      方法名與父類的相同,引數與父類的相同,返回值相同、許可權修飾符要大於等於父類的許可權修飾符。

                2、過載

                        發生在同一個類中

                        方法名相同、引數不同(引數的個數、順序、型別)

                        與許可權修飾符、返回值無關

(*)內部類的變數查詢順序

        當前方法---->本類成員---->外部類成員

(*)子類變數查詢範圍

        當前方法---->本類成員---->父類成員