<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      一個類繼承一個接口的實(shí)現(xiàn)類、兩個類實(shí)現(xiàn)同一個接口、兩個類同時繼承一個實(shí)現(xiàn)了某一接口的抽象類。三者的區(qū)別是什么呢

      1. 架構(gòu)對比圖

        類繼承接口的實(shí)現(xiàn)類

           [接口]
             ↑
         [實(shí)現(xiàn)類]
             ↑
           [子類]
                            

        子類通過繼承獲得接口的實(shí)現(xiàn),可以選擇性重寫方法。

        兩個類實(shí)現(xiàn)同一個接口

           [接口]
           ↑    ↑
        [類A] [類B]
                            

        每個類獨(dú)立實(shí)現(xiàn)接口,提供自己的行為實(shí)現(xiàn)。

        繼承實(shí)現(xiàn)接口的抽象類

           [接口]
             ↑
         [抽象類]
         ↑      ↑
        [類A]  [類B]
                            

        抽象類提供部分實(shí)現(xiàn),子類完成特定功能的實(shí)現(xiàn)。

         

        1. 兩個類實(shí)現(xiàn)同一個接口

        結(jié)構(gòu):兩個類(如 A 和 B)直接實(shí)現(xiàn)同一接口(如 I),各自獨(dú)立實(shí)現(xiàn)接口的所有方法。
         
        interface I {
            void func();
        }
        
        class A implements I {
            @Override
            public void func() { /* A的獨(dú)立實(shí)現(xiàn) */ }
        }
        
        class B implements I {
            @Override
            public void func() { /* B的獨(dú)立實(shí)現(xiàn) */ }
        }
        核心特點(diǎn):
        • 無繼承關(guān)聯(lián):A 和 B 是 “平級” 關(guān)系,彼此無依賴,修改一個不影響另一個。
        • 零代碼復(fù)用:即使方法邏輯相似,也需各自實(shí)現(xiàn),無法共享代碼。
        • 強(qiáng)約束 + 高靈活:必須實(shí)現(xiàn)接口所有方法,但實(shí)現(xiàn)邏輯可完全不同(如 “支付接口” 的微信支付和支付寶實(shí)現(xiàn))。
        • 設(shè)計意圖:定義 “同一行為的不同實(shí)現(xiàn)方案”,強(qiáng)調(diào) “多樣性” 和 “可替換性”。

        2. 一個類繼承接口的實(shí)現(xiàn)類

        結(jié)構(gòu):接口 I 有具體實(shí)現(xiàn)類 Base,另一個類 Child 繼承 Base(間接實(shí)現(xiàn) I)。
         
        interface I {
            void func();
        }
        
        class Base implements I {
            @Override
            public void func() { /* 基礎(chǔ)實(shí)現(xiàn)邏輯 */ }
        }
        
        class Child extends Base {
            // 可選:重寫func()擴(kuò)展功能
            @Override
            public void func() {
                super.func(); // 復(fù)用Base的邏輯
                /* 新增Child特有的邏輯 */
            }
        }
        核心特點(diǎn): 
        • 單繼承依賴:Child 與 Base 是 “父子關(guān)系”,強(qiáng)依賴 Base 的具體實(shí)現(xiàn)。
        • 完全代碼復(fù)用:可直接使用 Base 的所有實(shí)現(xiàn),無需重復(fù)編寫。
        • 高耦合風(fēng)險:若 Base 修改方法邏輯(如改變 func() 的內(nèi)部實(shí)現(xiàn)),可能直接破壞 Child 的功能。
        • 設(shè)計意圖:基于現(xiàn)有功能 “擴(kuò)展增強(qiáng)”(如 “基礎(chǔ)訂單處理”→“VIP 訂單處理”,復(fù)用基礎(chǔ)流程并新增特權(quán)邏輯)。

        3. 兩個類繼承實(shí)現(xiàn)了接口的抽象類

        結(jié)構(gòu):接口 I 被抽象類 AbstractBase 部分實(shí)現(xiàn)(實(shí)現(xiàn)部分方法,留空部分抽象方法),兩個子類 C 和 D 繼承 AbstractBase
        interface I {
            void func1();
            void func2();
        }
        
        // 抽象類實(shí)現(xiàn)部分接口方法,保留部分抽象
        abstract class AbstractBase implements I {
            @Override
            public void func1() { /* 通用邏輯(如日志、校驗),子類可直接復(fù)用 */ }
            
            // 留空func2(),強(qiáng)制子類實(shí)現(xiàn)個性化邏輯
            public abstract void func2();
        }
        
        class C extends AbstractBase {
            @Override
            public void func2() { /* C的個性化實(shí)現(xiàn) */ }
        }
        
        class D extends AbstractBase {
            @Override
            public void func2() { /* D的個性化實(shí)現(xiàn) */ }
        }
        
         
        核心特點(diǎn):
          • 多層繼承 + 部分復(fù)用:C 和 D 通過抽象類間接實(shí)現(xiàn)接口,復(fù)用 func1() 的通用邏輯,僅需定制 func2()
          • 中等耦合:依賴抽象類的通用實(shí)現(xiàn),但子類間彼此獨(dú)立,修改一個子類不影響另一個。
          • 半強(qiáng)制實(shí)現(xiàn):只需實(shí)現(xiàn)抽象類未完成的方法(如 func2()),無需重復(fù)編寫通用邏輯(如 func1())。
          • 設(shè)計意圖:“共享通用流程,定制差異化細(xì)節(jié)”(如框架設(shè)計中,抽象類實(shí)現(xiàn) “模板流程”,子類實(shí)現(xiàn) “具體步驟”)。

         

        2. 代碼復(fù)用與繼承層次

        模式代碼復(fù)用機(jī)制繼承層次特點(diǎn)風(fēng)險與限制
        繼承接口的實(shí)現(xiàn)類 通過繼承父類B復(fù)用其邏輯(包括接口I的實(shí)現(xiàn)) 形成“接口→父類→子類”的縱向繼承鏈 父類B的修改可能影響子類A;若子類重寫方法可能導(dǎo)致“行為不一致”
        兩個類實(shí)現(xiàn)同一接口 無直接代碼復(fù)用,各實(shí)現(xiàn)類獨(dú)立實(shí)現(xiàn)接口方法 平行結(jié)構(gòu),無繼承關(guān)聯(lián) 重復(fù)代碼風(fēng)險高,但靈活性更強(qiáng)
        繼承實(shí)現(xiàn)接口的抽象類 通過抽象類復(fù)用公共邏輯(如模板方法),子類專注差異化實(shí)現(xiàn) 抽象類作為基類,子類繼承其實(shí)現(xiàn) 抽象類的修改會影響所有子類;若抽象類未完全實(shí)現(xiàn)接口,子類需補(bǔ)全

        3. 多態(tài)性與類型系統(tǒng)

        模式多態(tài)性表現(xiàn)類型關(guān)系接口契約履行
        繼承接口的實(shí)現(xiàn)類 子類A的實(shí)例可向上轉(zhuǎn)型為接口I,同時保留父類B的特性 類A是類B的子類,類B是接口I的實(shí)現(xiàn)類 通過父類B履行接口契約
        兩個類實(shí)現(xiàn)同一接口 類C和類D的實(shí)例均可視為接口I的類型,具體行為由各自實(shí)現(xiàn)決定 接口I是抽象契約,類C和類D是獨(dú)立實(shí)現(xiàn) 直接履行接口契約,無中間層
        繼承實(shí)現(xiàn)接口的抽象類 子類E和F的實(shí)例可視為接口I的類型,同時共享抽象類的公共方法 抽象類是接口I的實(shí)現(xiàn)類,子類繼承抽象類 通過抽象類履行接口契約,子類可擴(kuò)展或覆蓋

        4. 設(shè)計原則與擴(kuò)展性

        模式開閉原則單一職責(zé)原則里氏替換原則擴(kuò)展性
        繼承接口的實(shí)現(xiàn)類 修改父類B可能違反開閉原則(影響子類A) 父類B可能承擔(dān)過多職責(zé)(如同時實(shí)現(xiàn)接口和業(yè)務(wù)邏輯) 子類A需能替換父類B而不破壞程序邏輯 新增子類需繼承現(xiàn)有父類,擴(kuò)展受限
        兩個類實(shí)現(xiàn)同一接口 符合開閉原則(新增實(shí)現(xiàn)類無需修改現(xiàn)有代碼) 各實(shí)現(xiàn)類職責(zé)單一,僅關(guān)注接口方法實(shí)現(xiàn) 無繼承關(guān)系,自然滿足 新增實(shí)現(xiàn)類自由,擴(kuò)展性強(qiáng)
        繼承實(shí)現(xiàn)接口的抽象類 抽象類提供公共邏輯,符合開閉原則(新增子類繼承抽象類) 抽象類可分離接口實(shí)現(xiàn)與業(yè)務(wù)邏輯,子類專注差異化 子類需能替換抽象類而不破壞程序邏輯 通過抽象類統(tǒng)一擴(kuò)展點(diǎn),擴(kuò)展便捷

         

        三種方式的對比總結(jié)

        適用場景與區(qū)別

        • 類繼承接口的實(shí)現(xiàn)類:適用于需要重用現(xiàn)有實(shí)現(xiàn)的情況,子類可以擴(kuò)展或修改父類的實(shí)現(xiàn)
        • 兩個類實(shí)現(xiàn)同一個接口:適用于不同類有完全不同實(shí)現(xiàn)的情況,強(qiáng)調(diào)多態(tài)性
        • 繼承實(shí)現(xiàn)接口的抽象類:適用于有部分共同實(shí)現(xiàn)但又有差異的情況,平衡代碼復(fù)用和靈活性

        設(shè)計考慮

        • 如果需要最大程度的代碼復(fù)用,選擇第一種或第三種方式
        • 如果需要最大程度的靈活性,選擇第二種方式
        • 如果需要在多個類間共享一些公共代碼,但同時允許不同實(shí)現(xiàn),選擇第三種方式
      posted @ 2025-09-13 00:58  飄來蕩去evo  閱讀(21)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲国产一区二区三区久| 九九热精彩视频在线免费| 国产二区三区不卡免费| 亚洲码与欧洲码区别入口| 麻豆精品一区二正一三区| 亚洲精品自产拍在线观看动漫 | 上司人妻互换中文字幕| 激情综合网激情国产av| 国产精品爽爽爽一区二区| 国产成人精品无码专区| 久久精品国产色蜜蜜麻豆| 一区二区国产高清视频在线 | 99RE6在线观看国产精品| 一区二区在线观看成人午夜| 亚洲中文字幕无码专区| 久久人人97超碰精品| 国产精品无码v在线观看| 亚洲av乱码久久亚洲精品| 好紧好滑好湿好爽免费视频| 中文字幕色偷偷人妻久久| 色综合国产一区二区三区| 成人午夜在线观看日韩| 视频一区二区不中文字幕| 久久99精品国产麻豆婷婷| 亚洲精品日本一区二区| 久久久久久伊人高潮影院| 久爱www人成免费网站| 精品国产一区二区三区卡| 欧产日产国产精品精品| 国产精品视频露脸| 老王亚洲AV综合在线观看| 久久久婷婷成人综合激情| 无码av片在线观看免费| 亚洲AV福利天堂在线观看| 深夜视频国产在线观看| 老司机亚洲精品一区二区| 狠狠躁天天躁中文字幕无码| 亚洲国产精品日韩av专区| 香蕉EEWW99国产精选免费| 兰州市| 手机看片福利一区二区三区|