⑴ 求詳解java中的介面與多態
多態是面向對象的核心之一,面向介面編程也是以面向對象編程為核心。
介面就是一種規范,我們平時編程要融入生活,比如說電腦的主板,上面有很多介面,插CPU得介面只要插上CPU就可以工作,不管它是哪個廠家生產的CPU,不管它內部如何工作,只要是CPU就可以用。好比你寫個介面,裡面有個fly方法,實現此介面的類都要實現這個方法,至於你如何飛是你的問題,不管你用翅膀飛,還是騎掃把飛,只要實現』fly飛『就可以。
上面是讓你將編程融入生活,說說編程的東西。
多態就是父類或者介面的引用指向子類的對象的情況。比如child類 extends Fahter類
那麼可以Father f=new Child(); 如果一段代碼可以用父類運行,當換成子類時,功能不變,那麼就是多態。多態主要一定要記得兩段話,編譯時看引用,運行時看對象。這句話的意思是在IDE編譯階段,你用f點出來的方法(f.這里會提示Father類有得實例方法)都是Fahter類自己有得,而Child類里自己有得方法不會被自動提示出來。但是如果子類重寫父類的方法了(重寫:就是子類定義了一個與父類一模一樣的方法,只是方法體不同),運行時還要看後面new出來的是誰,new Child();那麼執行要執行Child類重寫的方法體,這樣做的好處是我可以在一個方法里寫f.fly();(比如Father和Child都有fly方法)
public void test(Father f){
f.fly();
} 在這樣的代碼下 我裡面代碼不用動,但是可以讓f.fly()效果不同,因為我傳進去的子類對象可以不同,比如test(new Child1()); test(new Child2()); test(new Child3());然而這三個子類裡面的fly都有自己的具體實現,這就是多態的表現,同一個引用調用同一個方法而表現出多種狀態。介面換成父類是一樣的。 再有不懂得地方追問。 呵呵