day03 介面 多型

2021-10-19 05:11:10 字數 2069 閱讀 2477

介面可以定義一定的規則,利用這些規定給類進行功能擴充套件。

//定義介面

public

inte***ce 介面名1

//定義介面

public

inte***ce 介面名2

//實現介面

public

class 類名 implements 介面名1

,介面名2

@override

public

void 方法名2()

}

成員變數:只能是常量,預設被 public

static

final 修飾

構造方法:沒有,也不能建立物件

成員方法:

jdk7:只能是抽象方法,預設被 public

abstract 修飾。必須複寫

jdk8: 可以寫預設方法,被 public

default 修飾的方法。可選複寫

可以寫靜態方法,被 public

static 修飾的方法。 使用介面名呼叫

jdk9: 可以寫私有方法,被 private 修飾的方法。 只能在本介面中使用。

1.類與類: 單繼承關係

2.類與介面: 多實現的關係,可以在繼承的基礎上實現多個介面

3.介面與介面:多繼承關係

多型指的是同乙個物件,可以具有多種表現形態。

多型的前提:

1.需要有繼承/實現的關係

2.需要有方法複寫

3.父類/介面接收子類物件

animal a =

newdog()

; a.

eat(

);

1.成員方法的訪問特點(編譯看父類,執行看子類)

如果方法沒有複寫,執行父類的方法;如果有複寫就執行子類的方法.

也就是說,只能呼叫父類中已存在的方法,如果呼叫的方法是子類特有的,那麼會報錯(見弊端)

2.成員變數的訪問特點(編譯、執行看父類)

只能訪問父類的變數,父類沒有就報錯了。

1.好處:提高了**的擴充套件性

把方法的引數寫父類/介面,呼叫方法可以傳遞任意的子類物件

2.弊端:不能呼叫子類特有的方法

如果想呼叫子類特有方法,可以進行向下轉型。

3.多型的轉型

向上轉型: animal a=

newcat()

;//多型的寫法,就是向上轉型

向下轉型: 在多型的基礎上,才能進行向下轉型;原本是什麼型別,才能還原成什麼型別。

if(a instanceof

cat)

//定義介面: 制定規則

public

inte***ce

usb

//實現類實現介面: 遵守規則

public

class

usbmouse

implements

usb@override

public

void

loaddriver()

@override

public

void

run(

)}

//實現類實現介面: 遵守規則

public

class

usbkeyboard

implements

usb@override

public

void

loaddriver()

@override

public

void

run(

)}

public

class

computer

}

public

class

demo2

}

DAY03 抽象類 介面

為什麼要有抽象類?主要的方向是 安全 使用抽象類的好處 有個介面叫flyanimalaction,裡面有flying方法和eat方法 有個類叫做蚊子,蚊子要實現flying和eat方法 有個類叫做蒼蠅,蒼蠅要實現flying和eat方法 然後你會發現所有飛行動物都要實現這兩個介面,很是麻煩 此時抽象...

day10 介面習題

第一題 分析以下需求,並用 實現 進行描述筆記本類,實現筆記本使用usb滑鼠 usb鍵盤 1.定義usb介面 開啟功能 關閉功能 2.定義筆記本類 開機功能 關機功能 定義使用usb裝置的功能 要求 既能使用滑鼠也能使用鍵盤,使用usb功能內部呼叫開啟和關閉功能 3.定義滑鼠類 要符合usb介面 4...

DAY8 介面通訊

day8 介面通訊 注意 延展中寫的東西只能在類內使用 pragma mark 屬性傳值 第乙個頁面往第二個頁面傳值 一 屬性傳值 第乙個頁面往第二個頁面傳值 屬性傳值 可以自定義屬性 也可使用控制項 檢視的自帶屬性 1 屬性傳值用於第乙個介面向第二個頁面傳值 2 明確兩者聯絡的橋梁,也就是觸發跳轉...