3 回答

TA貢獻(xiàn)174條經(jīng)驗(yàn) 獲得超85個(gè)贊
答案是b
A沒(méi)問(wèn)題,是函數(shù)的重寫(xiě)
C沒(méi)問(wèn)題,是一個(gè)B類的特有函數(shù),也可以算是getNum()方法的重載
D,沒(méi)問(wèn)題,同C
B編譯錯(cuò)誤,因?yàn)榭磪?shù)列表和父類的getNum方法形成了重寫(xiě),但是返回值類型不同,造成了調(diào)用的不確定性(就是虛擬機(jī)需要調(diào)用getNum時(shí),只看參數(shù)列表,所以,無(wú)法判斷該調(diào)用哪一個(gè)),所以編譯失敗

TA貢獻(xiàn)3條經(jīng)驗(yàn) 獲得超1個(gè)贊
答案是B,D。
B既不是重寫(xiě)也不是重載,重寫(xiě)需要一樣的返回值類型和參數(shù)列表,訪問(wèn)修飾符的限制一定要大于被重寫(xiě)方法的訪問(wèn)修飾符(public>protected>default>private);
重載:必須具有不同的參數(shù)列表;
可以有不同的返回類型,只要參數(shù)列表不同就可以了;
可以有不同的訪問(wèn)修飾符;
把其看做是重載,那么在java中是不能以返回值來(lái)區(qū)分重載方法的,所以b不對(duì).
D定義返回類型為float,但實(shí)際返回的是double類型
添加回答
舉報(bào)