多型,介面,列舉

2021-10-16 04:26:33 字數 1454 閱讀 7100

1.定義:同一種行為,具有多個不同的表現形式

2.前提條件:必須繼承或者實現,必須有的重寫

3.語法:父類的類名 物件名=new 子類的類名(實參列表);

子類的物件指向父類的引用

4.特性:

一旦有多型,分割槽編譯和執行(編譯看左,執行看右)

編譯看左邊:物件只能呼叫父類中存在的內容(子類獨有的是呼叫不到的) 名義型別

執行看右邊:執行的時候看實際型別是什麼?呼叫的內容是呼叫實際型別 實際型別

屬性和靜態方法是沒有多型的!

因為:屬性和靜態方法是沒有重寫和概念的

在呼叫屬性和靜態方法的時候,只看編譯時類(名義的型別)

jdk7.0之前 介面全部是抽象方法寫的

jdk8.0 新增了特性

預設方法:default修飾符修飾的方法

就相當於抽象中的普通方法(實現類可以繼承下去的,實現類就可以重寫該方法)

靜態方法:static修飾的方法

只能採用介面名去呼叫類和類之間:單繼承

類和介面之間:多實現

介面和介面之間:多繼承

語法:inte***ce fly extends myinte***ce,myinter

注意:fly的實現類只需要實現fly介面以及其以上所有介面中的所有抽象方法定義:訪問修飾符 inte***ce 介面名{}

公有的和預設的

特性:a.介面的所有的屬性預設都是公有的靜態變數

b.介面中的所有方法都是預設的抽象方法

c.如何使用介面

應該通過子類(實現類)去使用

使用方法:實現類 implement 介面

實現類需要實現介面中所有的抽象方法

d.介面中的可以例項化物件嗎?不可以

e.介面中有構造器嗎?沒有

f.乙個類的實現的介面可以有n個

使用方法:實現類需要實現所有介面中的所有方法

g.乙個類中實現了n個介面,還可以為其設定父類嗎?可以

jdk1.5之前的列舉實現方法:

乙個類只提供有限個物件

a.構造器私有化

b.對外提供若干個公有的靜態的本類型別的常量物件

jdk1.5之後引入的列舉型別:

採用enum修飾的類:

特性:a.構造器預設的就是私有的

b.在列舉的首行直接寫物件的名,如果是多個物件,採用逗號隔開

c.如果想要採用構造器對屬性賦值的話,需要在常量物件名後追加小括號(傳遞引數)

列舉型別預設是enum類

列舉的常用方法(來自於enum類)

tostring() 返回物件名(列舉可以選擇對其進行重寫)

name() 返回物件名(final修飾)

ordinal 返回該物件的索引位置

static values() 返回列舉類中的所有的物件

static valueof(string name)根據物件名獲取列舉物件列舉可以加()構造器

例項方法

C 列舉 類 多型 介面

列舉 enum day int weekdaystart int day.mon 類 物件是類的例項。構成類的方法和變數成為類的成員 當你定義乙個類時,你定義了乙個資料型別的藍圖。這實際上並沒有定義任何的資料,但它定義了類的名稱意味著什麼,也就是說,類的物件由什麼組成及在這個物件上可執行什麼操作。類...

列舉,介面加強

列舉 eunm 關n鍵字 定義列舉類 enum 列舉類的父類 1 列舉類 2 列舉常量 3 靜態方法 4 定義結構 靜態方法和屬性,成員方法和屬性,實現介面 覆寫enum類的方法 5 應用場景 乙個類的例項化物件可數的 性別,狀態,週期 顏色 6 支援 switch unicode public e...

介面實現多型

由於繼承有單根性這乙個特點,也就是說乙個類只能繼承與乙個父類,但是有時候我們需要繼承多個類,那莪這樣就有了介面的出現,介面實現讓乙個類可以繼承多個類,繼承的多個類實際上就是繼承的介面 介面使用inte ce關鍵字來表示乙個類是乙個幾介面 介面的特點 1 介面中的成員不能有任何實現 光說不做 只是定義...