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

C# 接口interface的實(shí)現(xiàn)(多接口、同名沖突、繼承+接口)

 更新時(shí)間:2026年06月26日 10:32:16   作者:影寂ldy  
本文主要介紹了C# 接口interface的實(shí)現(xiàn)(多接口、同名沖突、繼承+接口),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一、接口 核心概念

接口(interface):是一套行為規(guī)范/標(biāo)準(zhǔn),只定義成員聲明,不寫實(shí)現(xiàn)。

類/結(jié)構(gòu)體實(shí)現(xiàn)接口,必須實(shí)現(xiàn)接口中所有成員

接口核心特點(diǎn)(必考)

  • 接口 不能實(shí)例化
  • 接口中所有成員 默認(rèn)是公共、未實(shí)現(xiàn)
  • 接口 支持多實(shí)現(xiàn)(多繼承)(解決類單繼承問題)
  • 接口只包含:屬性、方法、事件、索引器(不能有字段
  • 接口命名規(guī)范:以 I 大寫開頭(IBook、IPaper、IPeople)

二、基礎(chǔ)語法與定義

1. 接口定義

//書的接口:規(guī)范書本必須擁有的屬性和方法
interface IBook
{
    int Id { get; set; }
    int Name { get; set; }
    void F1();
}

//紙張的接口:規(guī)范紙張必須擁有的屬性和方法
interface IPaper
{
    string color { get; set; }
    void F2();
}

2. 關(guān)鍵字區(qū)分(超級重點(diǎn))

  • 類 : 類 → 叫 繼承(單繼承)
  • 類 : 接口 → 叫 實(shí)現(xiàn)(多實(shí)現(xiàn))

三、多接口實(shí)現(xiàn)(一個(gè)類實(shí)現(xiàn)多個(gè)接口)

C# 類只能單繼承,但可以實(shí)現(xiàn)無數(shù)個(gè)接口,解決多繼承問題。

完整實(shí)現(xiàn)代碼

// Book類 同時(shí)實(shí)現(xiàn) IBook、IPaper 兩個(gè)接口
class Book : IBook, IPaper
{
    // 實(shí)現(xiàn)IBook接口屬性
    public int Id { get; set; }
    public int Name { get; set; }

    // 實(shí)現(xiàn)IPaper接口屬性
    public string color { get; set; }

    // 實(shí)現(xiàn)IBook方法
    public void F1()
    {

    }

    // 實(shí)現(xiàn)IPaper方法
    public void F2()
    {

    }

    // 類自己的擴(kuò)展屬性(接口沒有)
    public string StudentId { get; set; }
}

規(guī)則

實(shí)現(xiàn)多個(gè)接口時(shí),必須重寫/實(shí)現(xiàn)所有接口的所有屬性和方法,缺一不可。

四、接口同名成員沖突問題(重點(diǎn)難點(diǎn))

1. 場景介紹

父類 Book 中已經(jīng)存在 StudentId 屬性

新接口 IPeople 中也定義了同名 StudentId 屬性

interface IPeople
{
    string StudentId { get; set; }
}

2. 子類繼承父類 + 實(shí)現(xiàn)接口

SmallBook 繼承 Book、同時(shí)實(shí)現(xiàn) IPeople

class SmallBook : Book, IPeople
{
    // 父類Book已經(jīng)有StudentId
    // 滿足接口IPeople的成員要求,所以【不用重復(fù)實(shí)現(xiàn)】

    // 如果想要重新實(shí)現(xiàn)接口、覆蓋父類屬性,需要加 new
    public new string StudentId { get; set; }
}

核心規(guī)則(必背)

  • 如果父類已經(jīng)擁有和接口同名同返回值的成員
  • 子類繼承父類后,默認(rèn)自動滿足接口要求,不需要重寫
  • 如果想要重新實(shí)現(xiàn)、覆蓋父類成員,使用 new 隱藏

五、接口 VS 抽象類(高頻面試)

  • 接口:全是抽象規(guī)則(無實(shí)現(xiàn)),支持多實(shí)現(xiàn)
  • 抽象類:可以有普通成員、抽象成員,只能單繼承

六、完整可運(yùn)行測試代碼(我?guī)湍阊a(bǔ)全 Main 調(diào)用)

internal class Program
{
    static void Main(string[] args)
    {
        // 1. 實(shí)例化實(shí)現(xiàn)多接口的類
        Book b = new Book();
        b.Id = 1;
        b.Name = 1001;
        b.color = "白色";
        b.StudentId = "S1001";
        b.F1();
        b.F2();

        // 2. 子類繼承父類 + 實(shí)現(xiàn)新接口
        SmallBook sb = new SmallBook();
        sb.StudentId = "S2002"; // new 新屬性

        Console.WriteLine("Book顏色:" + b.color);
        Console.WriteLine("子類StudentId:" + sb.StudentId);
    }
}

七、滿分必考總結(jié)

  • 接口 不能 new、不能實(shí)例化
  • 接口 全部成員默認(rèn)公共、無實(shí)現(xiàn)
  • 類實(shí)現(xiàn)接口 必須實(shí)現(xiàn)全部成員
  • 類支持 多接口實(shí)現(xiàn),只能單類繼承
  • 父類已有同名成員,子類實(shí)現(xiàn)接口可免實(shí)現(xiàn)
  • 想要覆蓋父類成員,使用 new 關(guān)鍵字隱藏

八、背誦口訣

接口定規(guī)范,無體不能實(shí)例化;單類繼承多接口,父有同名不用寫;想要覆蓋加 new,多態(tài)擴(kuò)展最靈活

到此這篇關(guān)于C# 接口interface的實(shí)現(xiàn)(多接口、同名沖突、繼承+接口)的文章就介紹到這了,更多相關(guān)C# 接口interface內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 同步調(diào)用和異步調(diào)用WebService

    同步調(diào)用和異步調(diào)用WebService

    本文給大家介紹webservice同步調(diào)用和異步調(diào)用,同步調(diào)用就是一個(gè)同步操作會阻塞整個(gè)當(dāng)前的進(jìn)程,直到這個(gè)操作完成才能執(zhí)行下一段代碼,異步調(diào)用不會阻塞啟動操作的調(diào)用線程,調(diào)用程序必須通過輪流檢測,或者等待完成信號來發(fā)現(xiàn)調(diào)用的完成。小伙伴們跟著小編一起學(xué)習(xí)
    2015-09-09
  • 學(xué)會使用C#異常

    學(xué)會使用C#異常

    在C#中,程序中在運(yùn)行時(shí)出現(xiàn)的錯(cuò)誤,會不斷在程序中進(jìn)行傳播,這種機(jī)制稱為“異常”。 異常通常由錯(cuò)誤的代碼引發(fā),并由能夠更正錯(cuò)誤的代碼進(jìn)行catch。本文將對C#異常簡要分析說明,下面就跟著小編一起來看下吧
    2016-12-12
  • C#簡單發(fā)送email的方法

    C#簡單發(fā)送email的方法

    這篇文章主要介紹了C#簡單發(fā)送email的方法,涉及C#發(fā)送Email的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • C#調(diào)用執(zhí)行命令行窗口(CMD)的方法與技巧

    C#調(diào)用執(zhí)行命令行窗口(CMD)的方法與技巧

    在 C# 的編程世界里,我們常常會遇到需要與操作系統(tǒng)底層進(jìn)行交互的場景,這時(shí),調(diào)用命令行窗口(CMD)就成為了一個(gè)強(qiáng)大的工具,通過 C# 調(diào)用 CMD 都能為我們提供極大的便利,極大地拓展了 C# 應(yīng)用程序的功能邊界,本文介紹了C#中調(diào)用執(zhí)行CMD的方法與技巧
    2025-01-01
  • C#使用Post調(diào)用接口并傳遞json參數(shù)

    C#使用Post調(diào)用接口并傳遞json參數(shù)

    這篇文章主要介紹了C#使用Post調(diào)用接口并傳遞json參數(shù),具有很好的參考價(jià)值,希望對大家有所幫助。
    2022-06-06
  • 基于c# 接口的實(shí)例詳解

    基于c# 接口的實(shí)例詳解

    本篇文章是對c#中的接口進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • c#唯一值渲染實(shí)例代碼

    c#唯一值渲染實(shí)例代碼

    這篇文章主要介紹了c#唯一值渲染實(shí)例代碼,有需要的朋友可以參考一下
    2013-12-12
  • C#實(shí)現(xiàn)鬧鐘AlarmClock實(shí)例代碼

    C#實(shí)現(xiàn)鬧鐘AlarmClock實(shí)例代碼

    這篇文章主要介紹了C#實(shí)現(xiàn)鬧鐘AlarmClock實(shí)例代碼,很實(shí)用的功能,需要的朋友可以參考下
    2014-08-08
  • C#小知識之有趣的類型靜態(tài)構(gòu)造器

    C#小知識之有趣的類型靜態(tài)構(gòu)造器

    這篇文章主要介紹了C#小知識之有趣的類型靜態(tài)構(gòu)造器,本文直接給分實(shí)例代碼,然后分析了C#中的這一個(gè)有趣的現(xiàn)象,需要的朋友可以參考下
    2015-04-04
  • 詳解C#中Helper類的使用

    詳解C#中Helper類的使用

    項(xiàng)目中用戶頻繁訪問數(shù)據(jù)庫會導(dǎo)致程序的卡頓,甚至堵塞。使用緩存可以有效的降低用戶訪問數(shù)據(jù)庫的頻次,有效的減少并發(fā)的壓力。而helper類對緩存有了封裝,本文展示了封裝的示例代碼,需要的可以參考一下
    2022-04-04

最新評論

股票| 开远市| 历史| 晋宁县| 乌海市| 阿鲁科尔沁旗| 内乡县| 灌阳县| 武隆县| 思茅市| 白朗县| 志丹县| 错那县| 瓮安县| 柘城县| 冀州市| 剑川县| 茂名市| 扶余县| 织金县| 石门县| 库伦旗| 海口市| 太谷县| 梁平县| 涞水县| 凯里市| 阜城县| 清镇市| 九台市| 湖北省| 商南县| 左权县| 兰溪市| 合水县| 农安县| 唐河县| 蓬安县| 屏东市| 新巴尔虎右旗| 墨竹工卡县|