接口
基本概念
接口时行为的抽象规范
关键字 interface
接口申明规范
不包含成员变量
只包含方法、属性、索引器、事件
成员不能被实现
成员可以不用写访问修饰符,但是不能是私有的
接口不能继承类,但是可以继承另一个接口
接口的使用规范
类可以继承多个接口
类继承接口后,必须实现接口中的所有成员
接口时用来继承的
接口不能被实例化,但是可以作为容器来存储对象
接口的申明
接口是抽象行为的“基类”
接口命名规范 帕斯卡命名法前面加个I
//interface 接口名
//{
//}
interface IFly
{
//成员可以不用写访问修饰符,但是不能是私有的
void Fly();
//成员属性不能被实现,get和set中不能有语句块
string Name
{
get;
set;
}
int this[int index]
{
get;
set;
}
//事件和委托
event Action doSomething;
}
//类可以继承一个类和n个接口
//继承了接口后必须实现其中的内容,而且必须是public的
class Animal
{
}
class Person : Animal,IFlay
{
//实现的接口函数,可以加上virtual再在子类重写
//public virtual void Fly()
public void Fly()
{
}
public string Name
{
get;
set;
}
public int this[int index]
{
get
{
return 0;
}
set
{
}
}
public event Action doSomething;
}
//接口也适用里氏替换原则
Ifly f = new Person();
接口继承接口后,不需要去实现
等类继承了接口后,类自己去实现所有内容
显式实现接口
当一个类继承两个接口,但是接口中存在着同名方法时才会用
显式实现接口时不能写访问修饰符
interface IAtk
{
void Atk();
}
interface ISuperAtk
{
void Atk();
}
class Player:IAtk,ISuperAtk
{
void IAtk.Atk()
{
}
void ISuperAtk.Atk()
{
}
}
Player p = new Player();
(p as IAtk).Atk();
(p as ISuperAtk).Atk();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!