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 页。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了