最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#多接口實(shí)現(xiàn)、重名成員、顯式實(shí)現(xiàn)、接口繼承+抽象類和接口區(qū)別說明

 更新時(shí)間:2026年06月06日 10:00:15   作者:z落落  
這段SEO描述融合了“接口顯式實(shí)現(xiàn)”、“接口沖突”、“接口繼承”三個(gè)核心關(guān)鍵詞,詳細(xì)概括了文章關(guān)于Java接口相關(guān)知識(shí)點(diǎn)的講解,包括顯式實(shí)現(xiàn)規(guī)則、沖突接口處理方法、接口繼承規(guī)則等內(nèi)容,適合準(zhǔn)備相關(guān)考試或項(xiàng)目開發(fā)的讀者

一、核心知識(shí)點(diǎn)前置(必考)

1. 多接口沖突場(chǎng)景

當(dāng)一個(gè)類同時(shí)實(shí)現(xiàn)多個(gè)接口,出現(xiàn):同名但返回類型不同的屬性/方法 → 必須使用 接口顯式實(shí)現(xiàn)

2. 顯式實(shí)現(xiàn)規(guī)則

  • 格式:接口名.成員名
  • 不能加 public 修飾符(默認(rèn)私有)
  • 只能通過 對(duì)應(yīng)接口變量 訪問,不能通過類對(duì)象訪問

3. 隱式實(shí)現(xiàn)

同名、同類型成員,只需要實(shí)現(xiàn)一次,所有接口共用。

二、沖突接口定義 IA、IB

interface IA 
{ 
    int A { get; set; }
    string B { get; set; }
    string C { get; set; }
    void F1();
}
interface IB
{
    string B { get; set; }
    int C { get; set; }
    void F1(int a);
}

沖突分析

1. B 屬性:IA、IB 都是 string B → 同名同類型 → 無需沖突,隱式實(shí)現(xiàn)一次即可

2.C 屬性

  • IA:string C
  • IB:int C

同名、類型不同 → 嚴(yán)重沖突,必須顯式實(shí)現(xiàn)

3. F1 方法:方法簽名不同(無參/有參),屬于重載,不沖突

三、Test 類實(shí)現(xiàn)多接口(核心考點(diǎn))

class Test:IA, IB
{
    // 隱式實(shí)現(xiàn):共用同名同類型成員
    public int A { get; set; }
    public string B { get; set; }

    // 顯式實(shí)現(xiàn) IA 的 C(string類型)
    string IA.C { get; set; }

    // 顯式實(shí)現(xiàn) IB 的 C(int類型)
    int IB.C {  get; set; }

    // 無參F1 實(shí)現(xiàn) IA
    public void F1()
    {

    }

    // 有參F1 實(shí)現(xiàn) IB
    public void F1(int a)
    {

    }
}

逐行解析

1. public string B

兩個(gè)接口 B 都是 string 類型,實(shí)現(xiàn)一次,兩個(gè)接口共用

2. string IA.C {get;set;}

顯式實(shí)現(xiàn) IA 的 C 屬性,無訪問修飾符

3. int IB.C {get;set;}

顯式實(shí)現(xiàn) IB 的 C 屬性,無訪問修飾符

4. 兩個(gè) F1 方法參數(shù)不同,構(gòu)成方法重載,分別對(duì)應(yīng)兩個(gè)接口

顯式實(shí)現(xiàn)核心規(guī)則(背誦)

多個(gè)接口:名字相同、類型不同 = 必須顯式實(shí)現(xiàn)

多個(gè)接口:名字相同、類型相同 = 實(shí)現(xiàn)一次共用

四、Main 方法調(diào)用解析

IA t1 =  new Test();
t1.C = "11";  // 調(diào)用 IA的 string C

IB i1 = new Test();
i1.C = 10;    // 調(diào)用 IB的 int C

原理

顯式實(shí)現(xiàn)的成員 只能通過對(duì)應(yīng)接口變量訪問

  • 1. 接口 IA 變量 → 只能找到 IA.C(string)
  • 2. 接口 IB 變量 → 只能找到 IB.C(int)
  • 3. 不能用 Test 類對(duì)象直接點(diǎn) C,會(huì)報(bào)錯(cuò)

五、接口的繼承(接口拓展)

interface IC
{
    string B { get; set; }
}
interface IQ : IC
{
    int C { get; set; }
}

知識(shí)點(diǎn)

接口可以繼承接口

IQ 繼承 IC,意味著:

IQ 接口包含自己的所有成員 + 父接口 IC 的所有成員

六、類實(shí)現(xiàn)繼承接口(必須實(shí)現(xiàn)全部層級(jí)成員)

class Test1 : IQ
{
    public int C { get ; set ; }
    public string B { get; set; }
}

規(guī)則(必考原話)

如果一個(gè)類實(shí)現(xiàn)了子接口,子接口繼承了父接口,當(dāng)前類必須實(shí)現(xiàn)【所有父接口+子接口】的全部成員

Test1 實(shí)現(xiàn) IQ,IQ 繼承 IC

所以必須實(shí)現(xiàn):

IC 的 B 屬性 + IQ 的 C 屬性

七、接口 VS 抽象類(滿分簡(jiǎn)答題標(biāo)準(zhǔn)答案)

相同點(diǎn)

  • 1. 都不能被實(shí)例化
  • 2. 都可以包含未實(shí)現(xiàn)的成員,由派生類實(shí)現(xiàn)

不同點(diǎn)(逐條背誦)

1. 成員結(jié)構(gòu)不同

  • 抽象類:可以有普通成員(有方法體)、字段、抽象成員
  • 接口:全部成員都是抽象、無實(shí)現(xiàn)

2. 繼承數(shù)量不同

  • 抽象類:類只能單繼承
  • 接口:類可以多實(shí)現(xiàn)

3. 重寫方式不同

  • 抽象類:子類必須用 override 重寫

  • 接口:直接實(shí)現(xiàn),不需要 override

4. 訪問修飾符不同

  • 抽象類:可以使用任意訪問修飾符

  • 接口:成員默認(rèn)public,不能手動(dòng)寫修飾符

5. 成員類型不同

  • 抽象類:可以有 字段、屬性、方法

  • 接口:不能有字段,只能有屬性、方法

對(duì)比維度

抽象類 abstract

接口 interface

成員類型

可以有普通方法、字段、屬性、抽象方法

只能有屬性、方法,不能有字段、普通實(shí)現(xiàn)

繼承數(shù)量

單繼承,一個(gè)類只能繼承一個(gè)抽象類

多實(shí)現(xiàn),一個(gè)類可實(shí)現(xiàn)無數(shù)接口

重寫方式

必須用 override 重寫

直接實(shí)現(xiàn),不需要 override

訪問修飾符

支持所有訪問修飾符

默認(rèn)public,不能手動(dòng)修改

主體功能

代碼復(fù)用、模板類

規(guī)范、行為約束、多態(tài)

八、終極總結(jié)口訣

  • 多接口同名同類型,實(shí)現(xiàn)一次就夠用
  • 多接口同名不同型,顯式實(shí)現(xiàn)分清楚
  • 顯式實(shí)現(xiàn)無修飾,只能接口變量讀
  • 接口可多可繼承,全部成員要實(shí)現(xiàn)
  • 抽象有體有字段,接口全抽

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#二分查找算法實(shí)例分析

    C#二分查找算法實(shí)例分析

    這篇文章主要介紹了C#二分查找算法,實(shí)例分析了C#二分查找的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • c#中?的六種用途

    c#中?的六種用途

    ? 是一個(gè)多用途的符號(hào),具有多種不同的用途,本文主要介紹了c#中?的六種用途,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-04-04
  • C#中遍歷DataSet數(shù)據(jù)集對(duì)象實(shí)例

    C#中遍歷DataSet數(shù)據(jù)集對(duì)象實(shí)例

    這篇文章主要介紹了C#中遍歷DataSet數(shù)據(jù)集對(duì)象實(shí)例,經(jīng)常忘記如何操作DataSet,這里記下來并分享,讓需要的朋友可以參考下
    2014-08-08
  • .NET利用C#字節(jié)流動(dòng)態(tài)操作Excel文件

    .NET利用C#字節(jié)流動(dòng)態(tài)操作Excel文件

    在.NET開發(fā)中,通過字節(jié)流動(dòng)態(tài)操作Excel文件提供了一種高效且靈活的方式處理數(shù)據(jù),本文將演示如何在.NET平臺(tái)使用C#通過字節(jié)流創(chuàng)建,讀取,編輯及保存Excel文件,需要的可以參考下
    2024-12-12
  • C#獲取時(shí)間戳的方法及時(shí)間戳轉(zhuǎn)換問題

    C#獲取時(shí)間戳的方法及時(shí)間戳轉(zhuǎn)換問題

    本文主要介紹了C#獲取時(shí)間戳的方法及時(shí)間戳轉(zhuǎn)換問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • C# double類型變量比較分析

    C# double類型變量比較分析

    這篇文章主要介紹了C# double類型變量比較分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • C#?WPF中RadioButton控件的用法及應(yīng)用場(chǎng)景

    C#?WPF中RadioButton控件的用法及應(yīng)用場(chǎng)景

    在WPF應(yīng)用程序中,RadioButton控件是一種常用的用戶界面元素,本文主要介紹了C#?WPF中RadioButton控件的用法及應(yīng)用場(chǎng)景,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • C#自定義組件實(shí)現(xiàn)表格的多層表頭功能

    C#自定義組件實(shí)現(xiàn)表格的多層表頭功能

    這篇文章主要為大家詳細(xì)介紹了如何使用C#自定義組件實(shí)現(xiàn)表格的多層表頭功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-12-12
  • 詳解WPF如何動(dòng)態(tài)生成DataGrid的行和列

    詳解WPF如何動(dòng)態(tài)生成DataGrid的行和列

    在日常開發(fā)中,DataGrid作為二維表格,非常適合數(shù)據(jù)的展示和統(tǒng)計(jì),本文以一些簡(jiǎn)單的小例子,簡(jiǎn)述在WPF開發(fā)中,如何動(dòng)態(tài)生成DataGrid的行和列,需要的可以了解下
    2024-02-02
  • C#處理猜拳問題的簡(jiǎn)單實(shí)例(非窗體)

    C#處理猜拳問題的簡(jiǎn)單實(shí)例(非窗體)

    下面小編就為大家?guī)硪黄狢#處理猜拳問題的簡(jiǎn)單實(shí)例(非窗體)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-07-07

最新評(píng)論

荥阳市| 彭阳县| 古田县| 右玉县| 临江市| 九台市| 鄂伦春自治旗| 金坛市| 容城县| 江西省| 施甸县| 米易县| 许昌县| 河津市| 壤塘县| 肇源县| 余姚市| 三都| 新邵县| 敖汉旗| 象州县| 古浪县| 合肥市| 青阳县| 黎平县| 廊坊市| 尤溪县| 如皋市| 浦江县| 鄂伦春自治旗| 宁国市| 桦川县| 株洲县| 八宿县| 西乌| 建阳市| 隆尧县| 建平县| 婺源县| 乐昌市| 元阳县|