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

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

在接口中添加新方法時(shí)如何擺脫覆蓋所有類

在接口中添加新方法時(shí)如何擺脫覆蓋所有類

子衿沉夜 2023-05-17 14:45:41
我有接口、抽象方法和更多分類并使用這些引用類型如下。   public interface InterfaceA {    boolean mehod1();    boolean method2();    boolean newMethod(); //When added new method      }public abstract class AbstractA implements InterfaceA{// other common method}public Class C extend AbstractA //have to override three methodpublic Class D extend AbstractA //have to override three methodpublic Class E extend AbstractA //have to override three method but only should be override old methodpublic Class F extend AbstractA  //have to override three method  but only should be override old method這些類派生了 AbstractA 類,我只想在接口中使用新方法,但只實(shí)現(xiàn) C 和 D 類,其他應(yīng)該只使用舊方法。應(yīng)該如何設(shè)計(jì)?
查看完整描述

3 回答

?
慕俠2389804

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

您可以通過兩種方式處理它:

  1. 如果您使用的是 Java 7 或更低版本,請擴(kuò)展 InterfaceA 以創(chuàng)建新接口

????public?InterfaceB?extends?InterfaceA{?
???????//?Your?new?methods?definitions?here..
????}

讓 C 類和 D 類實(shí)現(xiàn) InterfaceB。

  1. 如果您使用的是 Java 8 或更高版本,可以將默認(rèn)方法添加到 InterfaceA。覆蓋默認(rèn)實(shí)現(xiàn)以在類 C 和 D 中提供您的自定義實(shí)現(xiàn)


查看完整回答
反對 回復(fù) 2023-05-17
?
蕭十郎

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

您應(yīng)該考慮 SOLID 規(guī)則之一—— I“接口隔離原則”。您可能需要?jiǎng)?chuàng)建一個(gè)新接口,并且您的 C 類和 D 類可以實(shí)現(xiàn)多個(gè)接口。這是更好的設(shè)計(jì)方法。



查看完整回答
反對 回復(fù) 2023-05-17
?
白板的微信

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

看起來您沒有使用繼承。
如果 C、D、E、F 是 A/AbstractA 的子類,那么 A 中定義的任何方法都應(yīng)該對所有這些子類都有意義。
您不能阻止一個(gè)方法的子類繼承而允許另一個(gè)方法繼承。
如果您需要引入不同的概念,請使用不同的層次結(jié)構(gòu),但不要嘗試設(shè)計(jì)統(tǒng)一的東西。

對于層次結(jié)構(gòu)中的公共實(shí)現(xiàn),最好的 DRY 方法是將公共實(shí)現(xiàn)移動(dòng)到抽象類中,用于需要實(shí)例字段的方法,并將它們移動(dòng)到接口默認(rèn)方法中,用于不需要它們的方法。


查看完整回答
反對 回復(fù) 2023-05-17
  • 3 回答
  • 0 關(guān)注
  • 189 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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