Java物件導向 多型

2021-06-21 11:10:04 字數 2268 閱讀 5668

歡迎光臨新長城部落格中心

物件導向

多型:

多型的概述:某一類事物的多種存在的多種形態。

1、多型的體現

父類的引用指向了自己的子類物件。

父類的引用也可以接收自己的子類物件。

2、多型的前提

必須是類與類之間有關係。要麼繼承,要麼實現。

通常還有乙個前提:存在覆蓋。

3、多型的好處

多型的出現大大的提高程式的擴充套件性。

4、多型的弊端

提高了擴充套件性,但是只能使用父類的引用訪問父類中的成員。

5、多型的應用

abstract class

animal

class

cat 

extends

animal

public void 

catchmouse()

}

class

dog 

extends

animal

public void

kanjia()

}

class

pig 

extends

animal

public

void

gongdi()

}

class

duotaitest

public static voidfunction(animal a)

else

else if

(a instanceof

dog)  

else if

(ainstanceof

pig())

}

//instanceof : 

用於判斷物件的型別。 

//物件 intanceof 型別(類型別 介面型別) 

}

}

多型注意:

成員的特點:

1、成員變數。

編譯時:參考引用型變數所屬的類中的是否有呼叫的成員變數,有,編譯通過,沒有,編譯失敗。

執行時:參考引用型變數所屬的類中的是否有呼叫的成員變數,並執行該所屬類中的成員變數。

簡單總結:編譯和執行都參考等號的左邊。哦了。

2、成員函式(非靜態)。

編譯時:參考引用型變數所屬的類中的是否有呼叫的函式。有,編譯通過,沒有,編譯失敗。

執行時:參考的是物件所屬的類中是否有呼叫的函式。

簡單總結:編譯看左邊,執行看右邊。

因為成員函式存在覆蓋特性。

3、靜態函式。

編譯時:參考引用型變數所屬的類中的是否有呼叫的靜態方法。

執行時:參考引用型變數所屬的類中的是否有呼叫的靜態方法。

其實對於靜態方法,是不需要物件的。直接用類名呼叫即可。

簡單總結:編譯和執行都看左邊。

總結:非靜態成員函式,編譯時看左邊,執行時看右邊。其他都看左邊。

多型學後感:其實我們生活中有很多地方也是用到多型的,比如生活的角色扮演,是兒子的話,看到爸爸應該叫爸爸,是學生看到老師,應該叫老師,我們扮演的角色在時時刻刻的進行不斷的變化,這就是多型。

java 物件導向多型

1 多型性 1 方法的過載和重寫 2 物件的多型性 2 物件的多型性 1 向上轉型 程式會自動完成 父類 父類物件 子類例項 2 向下轉型 強制型別轉換 子類 子類物件 子類 父類例項 3 案例 package csdn.zyl.demo class a12 public void tell2 cl...

Java物件導向 六 多型

多型的最終體現 父類引用變數可以指向子類物件 多型的前提 必須有子父類關係或者類實現介面的關係,否則無法完成多型 在使用多型後的父類引用變數呼叫方法時,會呼叫子類重寫後的方法 多型的定義格式 就是父類引用變數指向子類物件 父類引用變數 變數名 new 子類型別 變數名.方法名 class fu cl...

Java基礎 物件導向(五)多型

一 概述 物件的多型性 class 動物 class 貓 extends 動物 class 狗 extends 動物 class demo 貓這類食物既具備貓的形態,又具備動物的形態。這就是多型性。簡單說 就是乙個物件對應著不同型別 提高了 的擴充套件性,前期定義的 可以使用後期的內容。abstra...