第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

強(qiáng)制子類以自身為參數(shù)覆蓋方法

強(qiáng)制子類以自身為參數(shù)覆蓋方法

我有一個(gè)抽象事件類,它有一個(gè)抽象方法:abstract boolean intersect(Event object);此方法應(yīng)根據(jù)特定子類的實(shí)例變量檢查 Event 子類的兩個(gè)實(shí)例是否相交。我想強(qiáng)制 Event 的任何子類覆蓋其實(shí)例變量上的方法。設(shè)計(jì)這個(gè)的最佳方法是什么?這是我當(dāng)前的實(shí)現(xiàn),這是錯(cuò)誤的,因?yàn)槲艺诟膮?shù)類型。我也嘗試過(guò)使用接口,但遇到了類似的類型參數(shù)問(wèn)題。@Overridepublic boolean intersect(SubClassEvent e2) {    boolean intersects = false;    if(this.weekDay == e2.weekDay) {        if (this.getStartTime() < e2.getStartTime() && this.getEndTime() > e2.getStartTime()) {            intersects = true;        }        else if(this.getStartTime() >= e2.getStartTime() && this.getStartTime() < e2.getEndTime()){            intersects = true;        }    }    return intersects;}
查看完整描述

2 回答

?
偶然的你

TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊

如果使抽象類泛型,則可以允許子類將自己指定為參數(shù)類型:


abstract class Event<T extends Event<T>> {

    abstract boolean intersect(T object);

}

子類將能夠?qū)⑺鼈冏约旱念愋吐暶鳛閰?shù)。除非您的代碼庫(kù)使用原始類型,否則這應(yīng)該有效。


class SubClassEvent extends Event<SubClassEvent> {

     @Override

    boolean intersect(SubClassEvent object){return true;}

}

這個(gè)(或者更確切地說(shuō)是例外)的限制將是原始類型和其他類型事件的事件,這可以允許其他參數(shù)類型。


查看完整回答
反對(duì) 回復(fù) 2021-12-30
?
汪汪一只貓

TA貢獻(xiàn)1898條經(jīng)驗(yàn) 獲得超8個(gè)贊

這在 Java 中是不可能的??紤]您有SubClassEvent實(shí)現(xiàn)方法的子類boolean intersect(SubClassEvent e2)。然后,如果它有一個(gè)進(jìn)一步的子類SubSubClassEvent extends SubClassEvent,它將根據(jù)繼承在 Java 中的工作方式boolean intersect(SubClassEvent e2)從繼承方法SubClassEvent

SubSubClassEvent不必覆蓋該方法,因?yàn)樵摲椒ㄔ谄涑愔惺欠浅橄蟮?code>SubSubClass。但即使SubSubClassEvent要覆蓋該方法,也必須使用簽名覆蓋它boolean intersect(SubClassEvent)。如果它實(shí)現(xiàn)了一個(gè)帶有簽名boolean intersect(SubSubClassEvent)的方法boolean intersect(SubClassEvent),在 Java 方法覆蓋規(guī)則下,它不會(huì)被視為從其超類中覆蓋該方法。

因此,SubSubClassEventEventintersect方法不將自己的類型作為參數(shù)類型的子類,違反了您的條件。


查看完整回答
反對(duì) 回復(fù) 2021-12-30
  • 2 回答
  • 0 關(guān)注
  • 140 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)