C#入门系列 -- 接口

举报
陈言必行 发表于 2022/03/19 13:56:10 2022/03/19
【摘要】 接口概念C#提供了多种进行规模化程序设计会用到的技术,如接口、程序集、命名空间等,本篇文章介绍下接口。  接口是类和类之间的协议,使用接口可以使得实现接口的类或结构在形式上保持一致,使程序更加清晰和条理化,具有很好的扩展性,并可以方便实现类与类之间的统一管理,是组件技术的重要支撑。接口把所有的方法和属性都掏空了,接口内部只有声明没有实现代码。接口的声明语法如下:[修饰符] interfac...

接口概念

C#提供了多种进行规模化程序设计会用到的技术,如接口、程序集、命名空间等,本篇文章介绍下接口。

  接口是类和类之间的协议,使用接口可以使得实现接口的类或结构在形式上保持一致,
使程序更加清晰和条理化,具有很好的扩展性,并可以方便实现类与类之间的统一管理,是组件技术的重要支撑。

接口把所有的方法和属性都掏空了,接口内部只有声明没有实现代码。

接口的声明语法如下:

[修饰符] interface 接口名
{
    //接口体
}

代码示例:

public interface ITest
{
    void Show();
}

接口声明

接口就是一组类或结构的一种实现形式约定。

声明接口时,需要遵守下面的规则:

  1. 接口声明不能包括数据成员;
  2. 接口声明只能包括成员类型为方法、属性、事件和索引的非静态成员函数的声明;
  3. 接口的函数成员声明不能包括任何实现代码,每个函数成员声明的主体后必须使用分号;
  4. 按照惯例,接口的名称必须从大写的I开始;
  5. 与类和结构相似,接口声明可以分割成分部接口声明;
  6. 接口声明可以使用所有的访问修饰符public、protected、internal和private;
  7. 接口的成员是隐式public的,不允许有任何访问修饰符。

C#虽然不支持类的多继承,但是C#支持接口的多继承,代码实现如下:

public interface ITest
{
    void Show();
}
    
public interface ITest_A
{
}

public interface ITest_B: ITest, ITest_A
{
}

接口实现

只有类和结构可以实现接口。要实现接口,类或结构必须在基类列表中包括接口名称,并且必须为每一个接口成员提供实现。

实现接口时必须实现所有接口成员,否则就会出现编译错误:

代码示例:

public interface ITest
{
    void Show();
}

class Test : ITest
{
    public void Show()
    {
        Console.WriteLine("---");
    }
}

补充说明:

  • 如果类从基类继承并实现接口,则基类列表中基类名称必须放在任何接口之前。

  • C#支持一个类或结构实现多个接口,所有实现的接口必须在基类列表中用逗号分隔。

  如果一个类实现了多个接口,并且其中一些接口有相同签名和返回类型的成员,则类可以实现单个成员来满足所有包含重复成员的接口,也可以通过显式实现方式分别实现每个接口的成员

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。