色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

java - 重載是不是多態??

瀏覽:102日期:2023-11-12 08:59:53

問題描述

這個問題真是個頭疼的問題,怎么說的都有

觀點一:多態的三要素,1,2,3 所以重載不是多態

觀點二:

java虛擬機一書中提到

多態性特征的一些最基本的體現,如“重載”和“重寫” 8.1節這話的意思是重載和重寫都是多態的體現

各位怎么理解

問題解答

回答1:

每本書翻譯得不一樣,最好指明英文術語,是Override還是Overload。

Override是多態的體現(例如@Override public String toString() {...}),但Overload不是(例如PrintStream.println()和PrintStream.println(String s))。

回答2:

實際上,中文“重載”對應的英文有三個:override, overload 和 overwrite,后來漸漸把最后一個改譯為“重寫”或者“改寫”。

override,是指對父類同簽名的函數進行重新定義的一種做法,這種情況下,父類函數和子類函數都分別獨立的個體。但在調用的時候,編譯器(或解釋器)能根據對象的實際類型來判斷調用哪一個實現。

overload 是指對同一個函數名,不能簽名的多種實現。這種情況下,往往可以使同一個函數名對不同類型的參數進行調用而產生不同的結果,典型的例子就是 max(int, int) 和 max(double, double) 等。

overwrite 通常是子類對父類同簽名函數的改寫,兩個函數簽名一樣,但是毫無關系。這種情況下父類類型對子類對象的引用,調用方法是是調用的父類方法(注意與 override 的不同)

關于 overwrite 和 override 的不同,如下圖

java - 重載是不是多態??

現在來說多態。我們先看看多態的定義:

多態指同一個實體同時具有多種形式。(必應網曲)

多態(Polymorphism)按字面的意思就是“多種狀態”。在面向對象語言中,接口的多種不同的實現方式即為多態。(百度百科)

從定義來看,“重載”與多態無關,但是重載是多態的一種體現形式,其它的還包括接口、抽象、虛函數、模板、泛形…………,再從百度百科引用幾句話:

簡單的說,就是一句話:允許將子類類型的指針賦值給父類類型的指針。多態性在Object Pascal和C++中都是通過虛函數實現的。

多態:同一操作作用于不同的對象,可以有不同的解釋,產生不同的執行結果。在運行時,可以通過指向基類的指針,來調用實現派生類中的方法。

C++中,實現多態有以下方法:虛函數,抽象類,覆蓋,模板(重載和多態無關)。

多態就是允許方法重名 參數或返回值可以是父類型傳入或返回。

回答3:

可能存在翻譯錯誤,多態是指對象在不同上下文環境表現出不同的特性,比如一個子類Child繼承了父類parent,parent中有一個login方法,Child類中也新增加了一個方法,save。也直接使用Child child1=new Child(),child1對象可以調用save和login方法,使用Parent child2 = new Child(),child2對象只能使用login方法。所以根據上下文而定。

標簽: java
相關文章:
主站蜘蛛池模板: 亚洲一区欧洲一区 | 欧美另类色 | 手机亚洲第一页 | 黄色网点| 国产一级一国产一级毛片 | 成年人免费在线视频观看 | 日韩在线成人 | 中文字幕在线看视频一区二区三区 | 国产美女主播一级成人毛片 | 亚洲国产成人久久精品图片 | 亚洲热视频 | 久久色精品 | 一区二区三区在线 | 欧 | 一级特黄aaa大片免费看 | 最刺激黄a大片免费观看 | 爽死你个放荡粗暴小淫货双女视频 | 毛片在线看网站 | 欧美日产国产亚洲综合图区一 | 中文字幕视频在线观看 | 殴美一级视频 | 欧美aaa毛片免费看 欧美aaa视频 | 亚洲国产成人超福利久久精品 | a级成人毛片久久 | 日本美女黄网站 | 免费国内精品久久久久影院 | 九草视频在线观看 | 亚洲国产日韩在线 | 欧美高清一区二区三区欧美 | 欧美日韩国产在线人成dvd | 亚洲国产精久久久久久久春色 | 俄罗斯小屁孩cao大人免费 | 亚洲羞羞视频 | 久久成人国产精品免费 | 久久高清影院 | 玖玖玖视频在线观看视频6 玖玖影院在线观看 | 欧美在线一区二区三区欧美 | 日本视频三区 | 亚洲jjzzjjzz在线播放 | 欧美视频在线观看一区二区 | 男人天堂视频在线观看 | 欧美国产日本精品一区二区三区 |