多型 Final 抽象類 介面 內部類

2021-10-08 06:28:46 字數 1866 閱讀 7683

對功能的擴充套件是開放的

對源**的修改是關閉的

統一行為通過不同的子類,可體現出不同的形態

物件的多種形態

構成多型的條件:

(1)有繼承

(2)有方法的重寫

(3)父類的引用指向子類的物件(例項)

多型有編譯時和執行時的狀態「=」的左和右

編譯看左邊、執行看右邊

無法使用子類所獨有的資源

(1)繼承關係

(2)父類的引用指向子類的例項

(3)方法的重寫

注意:

(1)只對重寫方法的多型,不是對屬性的多型

(2)能使用子類重寫父類的方法不能使用子類自己獨有的資源

(3)能使用從父類繼承的方法

想要使用子類所獨有資源就向下轉型

方法:子類 名 = (子類)父類

向下轉型的前提:向上轉型

判斷左邊的物件是否為右邊型別的例項

用於向下轉型的判斷,防止出現型別轉換異常

修飾的變數為常量

修飾的類不能被繼承

修飾的方法不能被重寫

修飾的物件位址值不可改變

定義一種規範

抽象方法:使用abstract修飾的方法

不能擁有方法體 就是{}

(1)當乙個類繼承了乙個抽象類,則必須實現抽象類中抽象方法

或者將實現類也變成抽象類

(2)抽象類中可以存在普通的屬性,也可以存在普通的方法

(3)抽象類中可以沒有抽象方法

(4)抽象方法只能存在抽象類中

(5)子類需要實現所有的抽象方法,不僅父親要實現,爺爺也要實現

(6)抽象類不能建立方法,要借助子類來實現功能

抽象類:使用abstract修飾的類

定義了一種規範,表示has a的關係

宣告:

(1)許可權修飾符 inte***ce 介面名

(2)介面中的方法是抽象方法?

(3)乙個類實現了介面,則必須實現介面內的方法否則此類要變為抽象類

(4)當乙個類實現了介面,則此類可以作為此介面的子類存在

(5)乙個類可以實現多個介面必須實現各個介面中的方法,否則變為抽象類

(6)乙個介面可以繼承多個介面,實現此介面的類需要實現各個介面內的方法,

否則抽象類

(7)介面中的變數是全域性靜態常量預設被public、final、static修飾

(8)介面中的方法預設為抽象類

把乙個類定義代乙個類的內部

非靜態成員內部類:就是不加static

(1)寫到方法的外部類的內容

(2)可以被4個許可權修飾符修飾

(3)內部類可以使用外部類的屬性、方法

(4)外部類無法直接使用內部類中的方法

(5)編譯後的.class檔案是外部類名名字+$+內部類的名字.class

(6)建立內部類物件 外部類物件.內部類物件

靜態成員內部類

(1)不能直接使用外部類中非靜態變數的資源(屬性、方法)

(2)外部類可以直接訪問內部類靜態的屬性 靜態的方法,非靜態屬性和方法

需要通過建立內部類物件的方式進行呼叫

區域性內部類

(1)在方法的內部

(2)可以使用外部類的資源,外部類無法使用區域性類的資源

匿名類部類:

匿名內部類就是內部類的簡化寫法,是一種特殊的區域性內部類。

前提:存在乙個類或者介面,這裡的類可以是具體類也可以是抽象類。

內部類 抽象類 介面

b color brown size large 1.內部類也稱為巢狀類。內部類允許乙個類被定義在另乙個類,或乙個語句甚至乙個表示式中。在一般的內部類中是不允許宣告任何static成員的。只有頂層類可以宣告。如果要在一般內部類中使用static成員,必須引用在頂層類中宣告好的成員。外部類可以呼叫靜態...

0824學習筆記(多型 抽象類 介面 內部類)

同乙個物件不同時刻的不同形態。父類引用指向子類物件。優 提高了程式的擴充套件性。定義方法使用父型別為引數,使用時用具體的子型別參與操作。缺 不能使用子型別特有的功能。轉型 向上轉型 people p new student 父指向子,子轉父。抽象類 沒有方法體的方法是抽象方法。特點 抽象類的成員變數...

內部類,抽象類和介面

abstract普通類繼承抽象類要把抽象類中的所有抽象方法都覆蓋,抽象類繼承抽象類不用。抽象類不能被建立物件。普通類不能有抽象方法,抽象類可以有普通方法。建立了抽象父類的物件new後面是子類物件是可以實現的。implements用來繼承介面,inte ce介面中不存在具體的方法,介面中只存在抽象方法...