接口

基本概念

接口时行为的抽象规范

关键字 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();
posted @   cannedmint  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示