請(qǐng)問用多態(tài)和不用多態(tài)有什么區(qū)別啊
這道題不用多態(tài)的話是 Chinese p=new Chinese;
用多態(tài)的話是? Person p=new Chinese;
表面看上去結(jié)果并沒有什么不同,這兩個(gè)的區(qū)別在哪里
這道題不用多態(tài)的話是 Chinese p=new Chinese;
用多態(tài)的話是? Person p=new Chinese;
表面看上去結(jié)果并沒有什么不同,這兩個(gè)的區(qū)別在哪里
2018-08-12
舉報(bào)
2018-08-12
在這里是沒什么區(qū)別的。
????????????? 有時(shí)候,你只有到運(yùn)行時(shí)才知道要處理的對(duì)象是哪一種子類。
比如設(shè)計(jì)一個(gè)學(xué)生類,再設(shè)計(jì)幾個(gè)子類,大學(xué)生、高中生、初中生。
然后你有一個(gè)方法叫打分,方法的參數(shù)如果是學(xué)生對(duì)象,那寫一個(gè)方法就夠了,不管實(shí)際傳的是哪個(gè)子類的對(duì)象都能執(zhí)行。但是沒有多態(tài),你就得寫三個(gè)方法,每個(gè)方法的參數(shù)定義為一個(gè)子類。更要命的是如果以后又增加了學(xué)生類別,你還得改代碼寫新方法。
? ? ? ? ? ? 多態(tài)是可以模擬現(xiàn)實(shí)生活的體現(xiàn)。就好像現(xiàn)實(shí)里的例子,火車站的一個(gè)普通售票窗口規(guī)定,誰都可以去排隊(duì)買票,但實(shí)際上卻可以因?yàn)橘I票人的身份不同,軍人、學(xué)生、兒童、成人等,有不同的售價(jià),這樣的區(qū)別對(duì)待并不需要為每種人單開一個(gè)窗口才能做到,一個(gè)窗口就行,只要是“人”,都可以去排隊(duì)。
用程序來實(shí)現(xiàn)這個(gè)流程時(shí)也一樣,人就是父類,而軍人、學(xué)生等,就是子類,只需要一個(gè)售票方法就夠了,參數(shù)是人類的對(duì)象,這就是多態(tài)的作用。
2018-09-16
雖然能看懂2樓講的,但是通過樓主舉的例子里并不能理解多態(tài)
2018-08-22
言簡意賅
2018-08-19
說的好有道理