小白對於多型的學習

2021-10-10 13:17:56 字數 1312 閱讀 7466

多型

概念:父類引用指向子類物件.(一種事務具有多種形態)

多型前提
1.必須有繼承關係.

2.父類引用指向子類物件.

3.子類重寫(不是過載)父類方法

這裡回顧一下重寫與過載的區別

重寫過載

定義要求區別

要求必須引數方法名返回值型別都相同

要求方法名相同與返回值型別無關引數列表不同(個數,型別,順序)

發生關係

必須發生在子父類之間

可以發生在本類或子父類

訪問修飾符

訪問修飾符要和重寫的方法訪問修飾符一樣或者更廣

與訪問修飾符無關

多型注意點

父類引用只能呼叫子類被父類父類重寫的方法

public

class

test300

}class

animal

}class

dogextends

animal

void

work()

}class

catextends

animal

void

work()

}

這裡就想animal物件呼叫dog()類和cat類中的方法時就牽扯到型別的轉換.(向上轉型,向下轉型)
向上轉型: 將子類型別的引用賦值給父類型別的引用

向上轉型結果: 縮小了子類物件的訪問許可權,變為只能訪問父類中定義的方法了

animal animal =

newdog()

; animal animal2 =

newcat()

; 這裡向上轉型所以animal類引用無法呼叫子類特有方法

work

()方法

向下轉型: 將裝有子類物件的父類引用,賦值給子類型別的引用.

向下轉型的結果: 恢復了子類型別原本的訪問範圍

animal =

newdog()

; animal2 =

newcat()

; 這裡向下轉型animal類引用又可以呼叫子類特有work

()方法

多型好處
提高了**的擴充套件性

忽視了子類型別之間的差異性.

C 學習筆記之多型 多型的學習 多型學習

c 學習筆記之多型 多型的學習 多型學習 多型分為兩類 靜態多型 函式過載和運算子過載屬於靜態多型,復用函式名 動態多型 派生類和虛函式實現執行時多型 靜態多型和動態多型的區別 靜態多型的函式位址早繫結 編譯階段確定函式位址 動態多型的函式位址晚繫結 執行階段確定函式位址 動態多型滿足條件 動態多型...

小白對於資料庫的初步理解

電腦是幾年前的電腦了,用起來不流暢,自己開發乙個 涉及到資料庫,一是不了解資料庫,二是也不太想現在學,三就是電腦裝上可能又卡了,於是就用txt文件當個簡易的 資料庫 了。想開發乙個類似於部落格的收藏夾個人主頁 學習開發總是從沒有意義的事情開始的 其中讀取收藏頁面的功能就需要涉及到資料,我把每個收藏夾...

小白學JAVA《十一》 多型

一 概念 相同的行為。不同的實現 二 靜態多型 1.能夠在編譯期間就確定方法被哪乙個物件所執行的過載或重寫 在編譯的時候就知道方法的呼叫 2.使用過載實現 三 動態多型 1.不能夠在編譯期間就確定方法被哪乙個物件所執行的過載或重寫 在後期傳值後才知道方法如何呼叫 2.使用動態繫結和重寫實現 四 動態...