亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于java重寫的問題

關于java重寫的問題

洋妞honey 2015-10-29 08:46:49
將下列哪個代碼放入程序中標注的【代碼】處將導致編譯錯誤。答案是B(PS:誰能告訴我這是怎么回事)A.public float getNum(){return 4.0f;}B.public void getNum(){}C.public void getNum(double d){}D.public?float getNum(float d){return 4.0d;}class?A{ public?float?getNum(){ return?3.0f;}} public?class?B?extends?A{ ????????【代碼】}
查看完整描述

3 回答

已采納
?
天啟之魂

TA貢獻174條經驗 獲得超85個贊

答案是b

A沒問題,是函數的重寫

C沒問題,是一個B類的特有函數,也可以算是getNum()方法的重載

D,沒問題,同C

B編譯錯誤,因為看參數列表和父類的getNum方法形成了重寫,但是返回值類型不同,造成了調用的不確定性(就是虛擬機需要調用getNum時,只看參數列表,所以,無法判斷該調用哪一個),所以編譯失敗


查看完整回答
反對 回復 2015-10-29
?
前進的騷年

TA貢獻3條經驗 獲得超1個贊

答案是B,D。

B既不是重寫也不是重載,重寫需要一樣的返回值類型和參數列表,訪問修飾符的限制一定要大于被重寫方法的訪問修飾符(public>protected>default>private);

重載:必須具有不同的參數列表;
  可以有不同的返回類型,只要參數列表不同就可以了;
  可以有不同的訪問修飾符;

把其看做是重載,那么在java中是不能以返回值來區分重載方法的,所以b不對.

D定義返回類型為float,但實際返回的是double類型

查看完整回答
反對 回復 2015-10-29
?
叫我官人0

TA貢獻3條經驗 獲得超1個贊

答案應該是d吧,返回類型不一致,需要強轉;這種最好自己敲一下

查看完整回答
反對 回復 2015-10-29
  • 3 回答
  • 0 關注
  • 1891 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號