多型
概念:父類引用指向子類物件.(一種事務具有多種形態)多型前提
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.使用動態繫結和重寫實現 四 動態...