3 回答

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超9個(gè)贊
一般來(lái)說(shuō),我說(shuō)“覆蓋”是指重新定義繼承的行為,而我說(shuō)“實(shí)現(xiàn)”是指定義一個(gè)行為(尚未實(shí)現(xiàn))。
所以我會(huì)說(shuō)那個(gè) B
工具show()
。
而JLS似乎用這種方式去:
如果非抽象方法
mC
覆蓋類中的抽象方法,則稱該方法是mA
從實(shí)現(xiàn)的。C
mC
mA
C
在甲骨文例如文檔好像說(shuō)override
是重新定義的行為太:
子類重寫(xiě)方法的能力使類可以從行為“足夠接近”的超類繼承,然后根據(jù)需要修改行為。覆蓋方法與其覆蓋的方法具有相同的名稱,數(shù)量和參數(shù)類型,并且返回類型相同。重寫(xiě)方法還可以返回重寫(xiě)方法返回的類型的子類型。此子類型稱為協(xié)變返回類型。
請(qǐng)注意,java.lang.Override
注解并沒(méi)有相反的意思(強(qiáng)調(diào)是我的):
指示方法聲明旨在覆蓋超類型中的方法聲明。如果使用此注釋類型對(duì)方法進(jìn)行注釋,則除非至少滿足以下條件之一,否則要求編譯器生成錯(cuò)誤消息:
該方法的確覆蓋或實(shí)現(xiàn)了在超類型中聲明的方法。
該方法的簽名與Object中聲明的任何公共方法的簽名等效。
該API可以@Implement
另外為@Override
注釋提供。
但是兩者都顯得很笨拙。因此,他們可能只保留一個(gè):@Override
傳達(dá)兩件事。

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超5個(gè)贊
您應(yīng)該說(shuō)實(shí)現(xiàn),因?yàn)檫@override
意味著您要覆蓋某些現(xiàn)有方法,這對(duì)于接口來(lái)說(shuō)是不正確的。接口不能包含方法定義,它們僅指定合同。
添加回答
舉報(bào)