☰
C# 接口继承详解:多继承、类与接口的组合使用(附完整示例)
2026/11/6 1:01:16 网站建设 项目流程

类之间可以继承,和类一样,接口也允许继承。在 C# 中,接口支持多继承,接口之间可以互相继承,也可以多继承;普通类和抽象类都可以继承接口。一个类可以同时继承一个类和多个接口,但接口不能继承类。

一、从一个生活场景理解接口继承

假如你是一名在职学习的学生,你就具有双重身份:一个身份是学生,必须完成学习任务;另一个身份是职员,必须完成工作任务。进一步说,如果你是计算机类学生,除学习基础课外,还必须学习 C# 程序设计。现在要建立一个模型,应该如何设计?

思路很清晰:先定义一个学生接口,规定学生必须学习;再定义一个职员接口,规定职员必须完成工作任务。计算机专业的学生除了完成一般学习任务,还要学习 C#,因此可以再定义一个接口继承学生接口,规定自己的专业学习任务。

二、定义接口

先来看三个接口的定义:学生接口、职员接口,以及继承自学生接口的计算机专业学生接口。

using System; // 定义学生接口 public interface IStudent { void StudyBase(); } // 定义职员接口 public interface IEmployee { void Work(); } // 定义计算机专业学生接口,继承自 IStudent public interface IInfoStudent : IStudent { void StudySpecial(); }

可以看到,IInfoStudent通过冒号继承了IStudent,因此它同时拥有StudyBase()和StudySpecial()两个方法约定。

三、类同时实现多个接口

接下来定义一个InfoStudent类,它同时实现IEmployee和IInfoStudent两个接口,因此必须实现这两个接口(包括其父接口)中声明的全部方法。

public class InfoStudent : IEmployee, IInfoStudent { // 实现学生接口方法 public void StudyBase() { Console.WriteLine("数学、语文和英语必须学好"); } // 实现职员接口方法 public void Work() { Console.WriteLine("工作必须完成"); } // 实现计算机专业学生接口方法 public void StudySpecial() { Console.WriteLine("计算机类的学生除学好基础课外,还要学C#"); } }

四、编写入口程序并运行

最后在Main方法中创建对象并依次调用三个方法:

class Program { public static void Main() { InfoStudent student = new InfoStudent(); student.StudyBase(); student.Work(); student.StudySpecial(); } }

运行结果如下:

数学、语文和英语必须学好 工作必须完成 计算机类的学生除学好基础课外,还要学C#

五、要点说明

  • 继承规则一致:接口之间的继承与类继承在含义和规则上是相同的,子接口会获得父接口中声明的全部成员。
  • 多接口用逗号分隔:当一个接口或一个类继承多个接口时,接口之间用英文逗号,隔开。
  • 接口不能继承类:接口只能继承接口,类可以继承类并实现多个接口,但接口不能反过来继承类。
  • 实现要完整:类实现某个接口时,必须实现该接口及其所有父接口中声明的方法,否则编译无法通过。

六、小结

接口继承让类型约定可以像类一样层层组合。通过把“学生”“职员”“计算机专业学生”拆成多个接口,再让一个类同时实现它们,既表达了多重身份,又保持了职责的清晰划分。这正是 C# 面向接口编程的典型用法。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询