Java學習筆記—第七章 類的深入解析

第七章 類的深入解析

1. 繼承

1.1 類繼承的方法:在Java中,子類對父類的繼承是在類的聲明中使用extends關鍵字來指明的。其一    般格式爲:[類修飾符] class <子類名> extends <父類名>{ 類體內容 }。一個類只能直接繼承一個    父類,一個父類可以有多個子類。

1.2 成員變量的繼承和隱藏:基於父類創建子類時,子類可以繼承父類的成員變量和成員方法。但是,     如果在父類和子類中同時聲明瞭一個同名變量,則這兩個變量在程序運行時同時存在。即:父類的     成員變量用於父類方法,子類的成員變量用於子類方法,互不干擾。

1.3 方法的繼承與覆蓋:子類可以繼承父類中所有可以被子類訪問的成員方法,但如果子類重新定義了     從父類繼承的方法,此時父類的這個方法在子類中將不復存在,此時稱爲子類方法覆蓋了父類的方     法,簡稱方法的覆蓋(override)。

1.4 構造方法的繼承:當通過子類創建對象時,系統會首先調用父類的無參構造方法,然後纔會執行子     類的構造方法。如果想要調用父類的有參構造方法,可以使用super關鍵字。


2. 多態性:多態性是指同名的不同方法在程序中共存。即同一個方法定義幾個版本,程序運行時根據不    同情況執行不同的版本。“一個對外接口,多個內在實現方法”

    多態性的實現方式:

    (1)方法覆蓋實現多態性

         此時通過子類對繼承父類的方法進行重定義來實現。

    (2)方法重載實現多態性

        通過定義多個同名的不同方法來實現,系統會根據參數(類型、個數、順序)的不同來區分不         同方法。


3.抽象類:抽象類中通常只包含抽象方法(只有方法的聲明,沒有方法體),而方法的具體實現則由其派    生出的各子類來完成,這使得程序的功能描述和功能實現得以分離。此外,由於一個抽象類可派生多    個子類,因此,抽象類中的一個抽象方法可以在多個子類中有多種實現方式,這也實現了類的多態性

 (1)抽象類的定義格式通常如下:

  public abstract class Plane { //聲明抽象類

    private String shape;       //聲明成員變量

    ......

    public abstract double area(); //聲明抽象方法,注意:分號必不可少

    ......

  }

 (2)抽象類是不能實例化的,也就是說,不能基於抽象類來創建對象。

 (3)抽象類中也可以含有普通成員變量和成員方法。但是,抽象方法只能出現在抽象類中。也就       是說,含有抽象方法的類必須是抽象類,非抽象類不能包含抽象方法。


4.接口:接口是由常量和抽象方法組成的特殊類。聲明接口的一般格式如下:

  [public] interface 接口名 [extends 父接口名列表]{

    //常量聲明

    //抽象方法聲明

  }

  接口與抽象類之間的關係:

 (1)接口中只能定義常量和抽象方法,而抽象類中可以聲明其他成員變量和成員方法;

 (2)一個類同時只能繼承一個抽象類,但可以同時實現多個接口;

 (3)抽象類的繼承用extends,接口的實現用implements。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章