C# 接口类型
什么是接口
个人理解,接口有点像 C 语言的前置申明。I开头命名,默认为 public, 分号结束,没有实现体。继承它的类必须全部实现接口成员。
public interface IComparable
{
int CompareT0(object obj);
}
实现接口
接口放在基类后面,类可以继承多个接口,用,号分开。
class Cat : Animal, ILiveBird
{
string ILiveBird.BabyCalled()
{
return "Kitten";
}
}
接口是引用类型
接口是引用类型。
接口类型转换建议用as运算符
as运算符的强制转换时,失败返回null,不会引发异常。
实现具有重复成员的接口
类内可以实现单个成员即可满足所有重复成员的接口。
派生类可以作为接口的实现
从基类派生过来的成员可以作为接口的实现成员。
显式接口成员
显式接口成员只能通过转化成接口引用类型才能实现访问,类实例不能够访问。
可以看之前的这篇笔记:https://www.cnblogs.com/huvjie/p/15341309.html。
实现的显式接口成员前面不能加public等访问修饰符,因为类外根本不能够直接访问。但没有public也是可以被继承的。
using System;
namespace ConsoleApp1
{
class Program
{
static void Main()
{
Test test = new Test();
ILiveBird liveBird = test as ILiveBird; // 需要强制转化
if (liveBird != null)
Console.WriteLine(liveBird.BabyCalled());
else
Console.WriteLine("null");
}
}
interface ILiveBird
{
string BabyCalled();
}
class Animal { }
class Cat : Animal, ILiveBird
{
string ILiveBird.BabyCalled()
{
return "Kitten";
}
}
class Test:Cat
{
}
}
输出:
Kitten // 需要强制转化成接口类型

▲ 不能加`public`等访问修饰符
接口可以继承接口
当然在类内都要被实现。
不同类实现一个接口
可以看之前的这篇笔记:https://www.cnblogs.com/huvjie/p/15341309.html。
参考:
- 详细的内容可以看下《C# 图解教程》 P275 页。
浙公网安备 33010602011771号