首页 > 编程语言 > 详细

JAVA面向对象之三:多态性

时间:2021-05-26 14:31:32      阅读:10      评论:0      收藏:0      [点我收藏+]

可以理解为一个事物的多种形态。

对象的多态性是指,父类的引用指向子类的对象(或子类的对象赋给父类的引用)。多態的使用,即虛擬方法調用了對象的多態性以後,我們在編譯期,只能調用父類中聲明的方法,但在運行期,實際執行的是子類重寫父類的方法。因此多态是运行时的行为。子類中定義了與父類同名同參數的方法,在多態情況下,將此時父類的方法成爲虛擬方法,父類根據賦給他的不同子類對象,動態調用屬於子類的該方法,這樣的方法調用在編譯期是無法確定的。

总结:編譯看左邊,運行看右邊。

 

多态的使用前提

     a、要類的继承关系

     b、要方法的重写

     c、對象的多態性,只適用於方法不适用于属性。屬性的編譯和運行都看左邊。

 

重载,是指允許存在多個同名的方法,而這些方法的參數不同。編譯器根據方法的不同的參數列表,對同名方法的名稱做修飾。對於編譯器而言,這些同名方法就成了不同的方法。他們的調用地址在編譯期就綁定了。java的重載是可以包括父類和子類的,即子類可以重載父類的同名不同參數的方法。所以,對於重載而言,在方法調用之前,編譯器就已經確定了所要調用的方法,這稱爲早綁定或靜態綁定。

而對於多態,只有等到方法調用的那一刻,解釋運行器才會確定所要調用的具體方法,這稱爲晚綁定或動態綁定。

引用一句bruce eckel的話:不要犯傻,如果它不是晚綁定,它就不是多態。

 

JAVA面向对象之三:多态性

原文:https://www.cnblogs.com/dorsher/p/14767055.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!