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

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

當我們在類中定義接口的抽象方法時,我們是“覆蓋”或“實現”,還是簡單地說“定義”這些方法?

當我們在類中定義接口的抽象方法時,我們是“覆蓋”或“實現”,還是簡單地說“定義”這些方法?

素胚勾勒不出你 2021-05-10 09:33:55
B類中的show()方法是“重寫”,“實現”還是僅是“定義”?interface A{    void show();}class B implements A{    public void show()    {        System.out.println("What is the proper term to explain?");    }}
查看完整描述

3 回答

?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

一般來說,我說“覆蓋”是指重新定義繼承的行為,而我說“實現”是指定義一個行為(尚未實現)。

所以我會說那個 B工具show()

而JLS似乎用這種方式去:

如果非抽象方法mC覆蓋類中的抽象方法,則稱該方法是mA從實現的。CmCmAC

在甲骨文例如文檔好像說override是重新定義的行為太:

子類重寫方法的能力使類可以從行為“足夠接近”的超類繼承,然后根據需要修改行為。覆蓋方法與其覆蓋的方法具有相同的名稱,數量和參數類型,并且返回類型相同。重寫方法還可以返回重寫方法返回的類型的子類型。此子類型稱為協變返回類型。

請注意,java.lang.Override注解并沒有相反的意思(強調是我的):

指示方法聲明旨在覆蓋超類型中的方法聲明。如果使用此注釋類型對方法進行注釋,則除非至少滿足以下條件之一,否則要求編譯器生成錯誤消息:

該方法的確覆蓋實現了在超類型中聲明的方法。

該方法的簽名與Object中聲明的任何公共方法的簽名等效。

該API可以@Implement另外為@Override注釋提供。
但是兩者都顯得很笨拙。因此,他們可能只保留一個:@Override傳達兩件事。


查看完整回答
反對 回復 2021-05-19
?
四季花海

TA貢獻1811條經驗 獲得超5個贊

您應該說實現,因為這override意味著您要覆蓋某些現有方法,這對于接口來說是不正確的。接口不能包含方法定義,它們僅指定合同。


查看完整回答
反對 回復 2021-05-19
  • 3 回答
  • 0 關注
  • 208 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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