構(gòu)造器可以重寫嗎? 為什么?
誰能把原理舉例解釋清楚啊
10 回答

飲歌長嘯
TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個贊
方法的重寫?????? 由于父類的方法不能夠完成某種功能,但是還必須得調(diào)用這個方法,則子類可以重寫這個方法,加強(qiáng)其功能。?????? 在父類里面,如果一個函數(shù)可以讓子類重寫,必須在方法的返回類型前面用vritual關(guān)鍵來修飾。說明這個方法可以被?????? 子類重寫。?????? 如果在子類里面,要重寫父類的方法,則應(yīng)在方法返回類型前面加上override關(guān)鍵字,說明這個方法是重寫父類的。
重載
指的是函數(shù)的方法名相同,但是參數(shù)的類型,參數(shù)的個數(shù),順序不一樣互為函數(shù)的重載。
http://www.cnblogs.com/QLJ1314/archive/2012/08/11/2633802.html? 可以看看,可以加關(guān)注有問題再聊

慕容3067478
TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個贊
重載是方法的參數(shù)不一樣.
重寫是對父類方法的重新實(shí)現(xiàn).
構(gòu)造函數(shù)沒有這個概念.子類會自動調(diào)用其默認(rèn)構(gòu)造函數(shù)
(你可以求證一下)

慕哥6287543
TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超10個贊
重載是平行的。是一個類的內(nèi)部的方法名稱一樣,參數(shù)列表不一樣的多個方法,以實(shí)現(xiàn)不同的需求。
重寫是垂直的。是子類對父類同名方法的重新實(shí)現(xiàn),需要new關(guān)鍵字。

九州編程
TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超4個贊
@hunpo: 子類如果要覆蓋父類的方法(例如public void A()),可以直接用相同的名字在子類再次聲明public void A(),也可以public void new A()作為顯式覆蓋。你加不加new都會覆蓋,但是加了new一來編譯器不會有警告,而來也是一種比較文雅的做法,告訴自己和別人這是一個覆蓋了父類的方法。
重寫才用override。override只能重寫父類中virtual的方法,而覆蓋可以覆蓋任何方法(也許不是任何=。=記不清了。。。)。

長風(fēng)秋雁
TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個贊
重載 : 子類可以子類可以有與父類方法名相同的方法 ,簽名不同(即參數(shù)不同)
重寫 : 是就虛方法而言的 常見的虛方法:ToString() ,Equals()換而言之就是他們都可以重寫的

斯蒂芬大帝
TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個贊
關(guān)于重載和重寫的區(qū)別,建議你去園子首頁搜索一下。很多相關(guān)文章,比較清晰的辨別兩者的區(qū)別和用法??梢陨钊肓私?。

白豬掌柜的
TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個贊
這兩個概念完全沒有關(guān)系
我的理解是:
重載是有幾個方法恰好重名了,但這幾個方法的區(qū)別就是參數(shù)不同,(也可以說是同名方法的不同的幾個版本)使用時,可以由智能感知來判斷,決定你到底是用哪個。
也就是說,這幾個同名方法之間沒有任何關(guān)系,只不過是同名。
重寫:定義某個方法時就知道以后會要有不同的方式去完成本方法要實(shí)現(xiàn)的功能(即實(shí)現(xiàn)多態(tài)性),所以設(shè)計(jì)方法時就被故意設(shè)計(jì)為可被重寫的(在基類中),聲明方法是使用virtu關(guān)鍵字,這種方法被稱之為“虛方法”。這樣,你以后就可以在派生類里重寫他,用overriding。(在派生類中)
也就是說,這幾個方法簽名,參數(shù),可訪問性都是相同的,不同之處就是它們可能適用于不同的派生類(這也是重寫某方法的原因)。使用時,依舊是由智能感知來判斷你到底使用哪個。
?
以上是我的理解,有不對的話請幫我指出來,謝謝!
- 10 回答
- 0 關(guān)注
- 973 瀏覽
添加回答
舉報(bào)
0/150
提交
取消