程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> 神奇在於=====》 繼承,在於繼承

神奇在於=====》 繼承,在於繼承

編輯:JAVA綜合教程

神奇在於=====》 繼承,在於繼承


一、繼承

1、作用:繼承是復用程序代碼的有力手段。

2、理解繼承:當有多個類之間存在相同的屬性時,我們可以在這些類中抽取一個父類,當子類繼承父類時,子類就能使用父類所有的方法和屬性。(子類就無需定義與父類相同的屬性)

二、繼承的基本語法

1、在java語言中,用關鍵字Extends來表示一個類繼承另一個類

解析:以上代碼表明Sub類繼承了Base類。那麼這個類到底繼承了哪些東西?分兩種情況分析。

1)       當Sub類和Base類位於同一個包中:

Sub類繼承Base類中Public、Protected和默認訪問級別的成員變量和成員方法

2)       當Sub類和Base類位於不同的包中:

Sub類繼承Base類中Public和protected訪問級別的成員變量和成員方法

為了敘述方便,有時會采用“子類繼承父類的屬性和方法”這樣籠統的方法。

3)Eg.假定Sub和Base類位於同一個包中,以下程序演示在Sub類中可繼承Base類的哪些成員變量和方法。

注意點:

1)Java語言不支持多繼承,一個類只能直接繼承一個類。

錯誤代碼如下:

Class Sub extends Base1,Base2,Base3{…….}

1)       盡管一個類只能有一個直接的父類,但是它可以有多個間接地父類

代碼如下:

Class base1 extends base2{…..}

Class Sub extends Base1{…..}

三、方法重載

1、重載方法必須滿足的條件

         1)方法名相同

         2方法的參數類型、個數、順序至少有一項不同

         3)方法的返回值類型可以不相同

         4)方法的修飾符可以不相同

2Eg

四、方法覆蓋

(一)覆蓋方法必須滿足多種約束

   1)子類方法的名稱、參數簽名和返回類型必須與父類方法的名稱、參數簽名和返回類型一致。

   2)子類方法不能縮小父類方法的訪問權限

   3)子類方法不能拋出比父類方法更多的異常

   4)方法覆蓋只存在於子類和父類(包括直接父類和間接父類)之間。在同一各類中方法只能被重載,不能被覆蓋。

   5)父類的靜態方法不能被子類覆蓋為非靜態方法

   6)子類可以定義與父類的靜態方法同名的靜態方法,以便在子類中隱藏父類的靜態方法

   7)父類的非靜態方法不能被子類覆蓋靜態方法

   8)父類的私有方法不能被子類覆蓋

五、super關鍵字

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved