1. 程式人生 > >子類和繼承

子類和繼承

局部變量 不能 訪問權限 abs bstr 允許 fin 構造 個數

  • 任何類都是Object類(java.lang包中的類)的子孫類。
  • 子類和父類在同一個包中:不繼承private成員變量和private方法。
  • 子類和父類不在同一個包中:不繼承private和友好訪問權限的成員變量和方法。
  • 其他類對象若訪問某個類繼承的protected成員變量或protected方法,需追溯到聲明該protected成員變量和方法所在的“祖先”類,若在同一個包中可訪問,若不在不可訪問。
  • boolean:對象+instanceof+類。
  • 子類隱藏繼承的成員變量:子類對象及子類自定義方法操作的是子類重新聲明的成員變量,子類繼承的方法操作的成員變量是子類繼承或隱藏的成員變量。
  • 方法重寫:方法的名字、參數個數、參數類型完全相同,方法的類型一樣或是父類方法類型的子類型(方法的類型是“類”),訪問權限不允許降低。

   目的:隱藏繼承的方法。

  • 重寫方法可操作繼承的成員變量和方法,也可操作子類新聲明的成員變量和方法,但調用被隱藏的方法或成員變量要使用super。
  • 子類不繼承父類的構造方法,super必須是子類構造方法中的頭一條語句。(默認有super();)
  • 如果類裏定義了一個或多個構造方法,那麽Java不提供默認的無參數構造方法。
  • final修飾:①類:不允許成為父類(不允許擴展,如String類)

        ②方法:不允許子類重寫(不允許隱藏:重寫)

       ③成員變量或局部變量:作為常量,聲明時必須賦值

  • 上轉型對象:將子類對象的引用放到父類的對象中。
  • 上轉型對象不能操作子類新增的成員變量(屬性)和新增方法(行為),可訪問子類繼承或隱藏的成員變量和繼承或重寫的方法。(可強制轉換成子類對象)(如果子類重寫的是父類的靜態方法,則調用父類的靜態方法)
  • 不可將父類對象的引用賦值給子類對象。
  • abstract修飾:①類(抽象類):類中可有abstract方法,非abstract類不可以有abstract方法。

         ②方法(抽象方法):不可用static修飾abstract方法,只允許聲明(無方法體)。

  • 不可用final和abstract同時修飾一個類或方法。
  • 不可用new創建abstract類對象,但可以聲明對象並成為其子類的上轉型對象。
  • abstract類的子類:①abstract類:可以重寫或繼承父類的abstract方法。

           ②非abstract類:必須重寫父類的abstract方法,給出方法體。

  • static只能修飾方法和變量。
  • 面向抽象編程目的是為了應對用戶需求的變化。
  • 面向抽象編程的核心是讓類中每種可能的變化對應地交給抽象類子類負責。

子類和繼承