C# 接口 interface (多接口实现、类+接口、成员重名)

一、接口核心概念(原文整理 必背)

  1. 接口的作用:为类、结构体定义规范、定义标准

  2. 接口中所有成员都是未实现的、抽象的(没有方法体、只有声明)。

  3. 类/结构体实现接口后,必须实现接口中所有的成员(属性、方法)。

  4. 接口不能被实例化

  5. 接口支持多继承(多实现),一个类可以同时实现多个接口。


二、接口命名规范

接口名称约定以大写 I 开头,区分普通类,提高代码可读性。

示例:IBook、IPaper、IPeople


三、第一个接口:IBook 图书规范接口

代码

复制代码
//书的接口
interface IBook
{
     int Id { get; set; }
     int Name { get; set; }
     void F1();
}

解析

  1. 接口中可以定义:自动属性、方法

  2. 接口属性必须写 get; set;(读写规范)

  3. 接口方法 void F1()没有方法体,只有方法签名

  4. 含义:所有实现 IBook 接口的类,必须拥有 Id、Name 属性和 F1 方法


四、第二个接口:IPaper 纸张规范接口

代码

复制代码
//纸张的接口
interface IPaper
{ 
    string color {  get; set; }
    void F2();
}

解析

  1. 定义纸张规范:必须有颜色属性、F2 方法

  2. 接口成员默认 public,不用手动写访问修饰符


五、重点语法辨析(必考)

复制代码
//:接口 叫【实现】
//:类   叫【继承】
//类可以实现多个接口

1. 冒号语法区别

子类 : 父类 → 继承(只能单继承)

类 : 接口 → 实现(可以多实现)

2. C# 核心规则

只能继承一个类

可以实现无数个接口


六、多接口实现演示:Book 类

代码

复制代码
class Book : IBook, IPaper
{
    public int Id { get ; set ; }
    public int Name { get ; set ; }
    public string color { get ; set ; }

    public void F1()
    {
       
    }

    public void F2()
    {
       
    }
}

逐行解析

  1. Book : IBook, IPaper

Book 类 同时实现两个接口

必须一次性实现 IBook、IPaper 中所有未实现成员

  1. 实现了:

IBook 的 Id、Name、F1()

IPaper 的 color、F2()

  1. 接口实现必须使用 public(接口成员都是公开规范)

七、第三个接口:IPeople(用于重名成员演示)

代码

复制代码
interface IPeople
{
    string StudentId {  get; set; }
}

定义学生编号属性规范


八、子类继承类 + 实现接口(重名成员核心考点)

代码

复制代码
class SmallBook : Book, IPeople
{
    // SmallBook 继承了Book类, Book里面已经有了StudentId属性,子类可以通过继承关系把属性继承过来
    // 也就是SmallBook已经拥有StudentId
    // 所以Ipeople接口StudentId属性没必要实现
    // 如果想重新实现、覆盖,可以用 new 关键字进行隐藏
    public new string StudentId { get; set; }
}

核心原理超详细解析

1. 类的关系

SmallBook 继承 Book 类 + 实现 IPeople 接口

2. 为什么不用重复实现接口属性?

IPeople 要求必须有 StudentId 属性

父类 Book 中已经手写了 StudentId

子类 SmallBook 继承了父类的 StudentId

等价于:子类已经拥有接口要求的成员,自动满足接口规范,不用重写

3. new 关键字作用(考试重点)

如果子类想要:不使用父类继承的属性,自己重新定义一个全新的同名属性

需要加 new 关键字:隐藏父类同名成员

形成:子类优先使用自己的 StudentId,和父类互不干扰


九、接口满分总结(简答题直接背)

1. 接口特点

① 接口是行为规范、标准,成员都是抽象、未实现的;

② 接口不能实例化;

③ 接口支持多实现,类只能单继承;

④ 类实现接口,必须实现接口所有成员;

⑤ 接口成员默认 public,不能写访问修饰符。

2. 继承 vs 实现

类 : 父类 → 继承(单继承)

类 : 接口 → 实现(多实现)

3. 父类已有接口成员的规则

子类继承父类 + 实现接口时,如果父类已经实现了接口所需成员,子类无需重复实现;若需要重新定义,使用 new 关键字隐藏父类成员。


十、终极背诵口诀

接口是规范,无体不能 new

类继单一父,接口可多补

父有子不用,重写 new 藏父组

相关推荐
发际线向北1 小时前
0x05 深入了解JVM虚拟机(JVM方法调用 -Ⅰ)
java
宋哥转AI1 小时前
学了Spring AI Graph再看LangGraph,发现API几乎一模一样
java·人工智能·agent
AskHarries1 小时前
Workspace:文件系统、项目上下文和执行边界
java·服务器·前端
摇滚侠1 小时前
JavaWeb 全套教程 Servlet 66-74
java·servlet·tomcat·intellij-idea·jar
Solis程序员2 小时前
滑动窗口热键探测与三级缓存设计
java·spring·缓存
好家伙VCC2 小时前
区块链双向支付通道实战:从签名到结算
java·后端·区块链·asp.net
知识的宝藏2 小时前
Xpaht self::div 轴语法
开发语言
keykey6.2 小时前
卷积神经网络(CNN):让AI学会“看“
开发语言·人工智能·深度学习·机器学习
ss2732 小时前
【入门OJ题解】分苹果问题(Python/Java/C 实现)
java·c语言·python