物件導向(二)

2021-07-01 22:32:32 字數 1835 閱讀 5477

物件導向的特徵之三:多型

多型機制

是物件導向程式設計的乙個重要特徵

多型的特點

是採用同名的方式,根據呼叫方法時傳送的引數的多少以及傳送引數型別的不同,呼叫不同的方法,這樣對於類的編制而言,可以採用同樣的方法獲得不同的行為特徵

多型性可以分為

編譯時多型

和執行時多型

編譯時多型:表現為方法名相同引數列表不同(過載)

執行時多型(物件的多型性):程式執行的時候判斷到底是哪個類(父類還是

子類的),這其實就是子類物件和父類物件的相互轉化關係

向上轉型

父類父類物件

= new

子類的例項

自動完成

向下轉型

子類子類物件

=(子類)父類的例項

強制完成

如何實現多型

1.子類繼承父類

2.子類重寫父類的方法

3.編寫方法時,使用父類作為形參型別

4.將子類的物件作為實參傳遞給該方法

5.執行時,根據實際建立的物件型別動態決定使用哪個方法

實現多型的三個條件:

1.要有重寫

2.要有繼承

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

多型的應用

: public class testpoly03

}class breeder

}class animal

}class cat extends animal

}class dog extends animal

}class elephants extends animal

}class food

}class fish extends food

}class meat extends food

}class banana extends food}

「==」與object

類的equals

方法1.

等號可以比較基本型別和引用型別,等號比較的是值,特別是比較引用型別,比較的是引用的記憶體位址。

2.equals

比較兩個物件是否相等

object

類的tostring

方法1.object

類的tostring

方法返回的是物件的

名稱@雜湊碼 2.string

類的tostring

方法返回的是自身

3.基本資料型別的包裝類的

tostring

方法返回的是自身

4.陣列和集合的

tostring

方法返回的是自身的值

內部類例項內部類:

1.建立例項內部類,外部類的例項必須已經建立

2.例項內部類會持有外部類的引用

3.例項內部不能定義

static

成員,使能定義例項成員

靜態內部類:

1.靜態內部類不會持有外部的類的引用,建立時可以不用建立外部類

2.靜態內部類可以訪問外部的靜態變數,如果訪問外部類的成員變數必須通過外部類的例項訪問

區域性內部類:

1.區域性內部類是在方法中定義的,它只能在當前方法中使用。和區域性變數的作用一樣

2.區域性內部類和例項內部類一致,不能包含靜態成員

匿名內部類:

十一種特殊的內部類,沒有名字

訪問許可權修飾符:

public

:任何類都能訪問

protected

:本類 同包

子類可訪問

default

:同包本類可訪問

private

:只能本類訪問

物件導向 二

多型 polymorphic 概述 事物存在的多種形態.1,事物存在的多種形態.2,要有方法重寫 3,要有父類引用指向子類物件.3,要有父類引用指向子類物件.重寫的注意事項 b 子類重寫父類方法時,訪問許可權不能更低 重寫的例子 public class base void test byte b ...

物件導向(二)

在類中屬性前加上雙下滑線就是私有化的屬性了,不能在類外直接通過類名呼叫 class dog role dog d dog print dog.role 報錯 我們可以用 dict 看看dog中有那些屬性看看 role變成了什麼 class dog role dog print dog.dict 我們...

物件導向(二)

1.構造方法與set 的區別 前者給屬性進行初始化,後者可以修改屬性值 開發常用,因為靈活 2.static關鍵字的特點 1 隨類的載入而載入 2 優先於物件而存在 3 被類的所有物件共享 如 乙個班的同學共享乙個班級 4 可以通過類名呼叫。3.靜態變數與成員變數的區別 4.塊 用 括起來的 1 區...