什么是接口
个人理解,接口有点像 C 语言的前置申明。I
开头命名,默认为 public
, 分号结束,没有实现体。继承它的类必须全部实现接口成员。
1 | public interface IComparable |
实现接口
接口放在基类后面,类可以继承多个接口,用,
号分开。
1 | class Cat : Animal, ILiveBird |
接口是引用类型
接口是引用类型。
接口类型转换建议用as
运算符
as
运算符的强制转换时,失败返回null
,不会引发异常。
实现具有重复成员的接口
类内可以实现单个成员即可满足所有重复成员的接口。
派生类可以作为接口的实现
从基类派生过来的成员可以作为接口的实现成员。
显式接口成员
显式接口成员只能通过转化成接口引用类型才能实现访问,类实例不能够访问。
可以看之前的这篇笔记:https://blog.huvjie.com/2020/08/26/200826N02/。
实现的显式接口成员前面不能加public
等访问修饰符,因为类外根本不能够直接访问。但没有public
也是可以被继承的。
1 | using System; |
输出:
1 | Kitten // 需要强制转化成接口类型 |
▲ 不能加
public
等访问修饰符接口可以继承接口
当然在类内都要被实现。
不同类实现一个接口
可以看之前的这篇笔记:https://blog.huvjie.com/2020/08/26/200826N02/。
参考:
- 详细的内容可以看下《C# 图解教程》 P275 页。