回覆列表
-
1 # web前端愛好者
-
2 # 今朝有酒今朝
AVA的多型用幾句話能直觀的解釋
用一句話概括就是:事物在執行過程中存在不同的狀態。
要有繼承關係子類要重寫父類的方法父類引用指向子類對,JAVA的多型和C++有什麼區別?
C++中,如果父類中的函式前邊標有virtual,才顯現出多型。如果父類func是virtual的,則Super *p =new Sub();
p->func(); // 呼叫子類的func
如果不是virtual的,p->func將呼叫父類原來的函式。
Java中,不管寫不寫virtual都是多型的,子類的同名函式會override父類的。與C++很不同的是,初始化的過程也不相同。在還未初始化子類的時候,子類的同名函式就已經覆蓋了父類的了。
大多數的技巧都是為了效率。包括 現在開發的效率和將來維護的效率。
多型也是一樣的。
比如: 過載, 同樣的函式名稱可以代表不同功能的函式。 這樣我們使用時只需要記住1個名稱。 現在麻煩,但是將來方便。
再比如: 父類變數可以引用多個子類的例項, 當不同子類進行切換的時候,不用考慮父類變數的變化。 現在麻煩,但是 維護方便。
有個大牛說: 當你從效率和效能角度,看待你的程式碼時,也就是你技術突飛猛進的時候。