多型疑難點

2021-09-30 12:29:23 字數 410 閱讀 1764

多型

使用父類作為方法的形參

使用父類作為方法的返回值

父類作為方法的形參:通俗的說就是,只通過操作父類就可以達到操作子類的效果。

使用的原理是向上轉型:父類的引用指向子類物件。自動進行型別轉換。

注意:1、此時通過父類引用變數呼叫的方法是子類覆蓋或繼承父類的方法,不是父類的方法。

再說,我們在父類裡也只是定義了乙個抽象的方法,並沒有方法體。

2、此時通過父類引用變數無法呼叫子類特有的方法

向上轉型後,該變數是父類的具體物件,自然無法呼叫子類特有(private修飾)的方法。

父類作為方法的返回值:你需要的是子類物件,通過向上轉型為父類物件,同上注意點1。也就是說,父類不通過形參來呼叫方法,而是直接通過建立新物件來呼叫方法。

用到的原理也是向上轉型。

程式設計疑難點

下面的博文對於理解引數的傳遞和二級指標有幫助 自己補充一部分 void change val char p 2 p new val 3 此處發生引數拷貝,用p copy代替p,即用p copy指標指向了new val,為改變p所指向的值 printf fun address of p 0x x,co...

疑難點積累(二)

參考文章 這裡有詳細的驗證和說明 1 timer會對它的target進行retain,直到timer自己失效為止。對重複執行的timer必須呼叫invalidate才能停止timer,讓timer失效。2 timer並不是一種實時機制,不是你指定1s後執行,1s後就會立即執行。當執行緒空閒的時候,t...

面試疑難點解析

list,set,map,有什麼區別?list和set實際上市實現了collection介面,那麼collection介面的原理你能簡單描述一下嗎?list介面可以插入多個null值,並且重複值,而且list是乙個有序的集合。set是乙個不可重複的集合,裡面的元素都只出現,最多隻出現1次,並且set...