• 接口略解


    接口把一组公共方法和属性组合起来 ,以封装特定功能的一个集合。通过类可以实现接口,这样类就支持接口所有的属性和方法。
    接口只能对方法和属性进行定义,不能实现,只能由支持它的类实现。接口中的成员不能用访问符修饰,如public,private,它的成员默认为public
    定义接口比较简 单
    public interface IMyinterface
    {
    void Dosomething();//方法成员
    int MyAttribute//属性成员
    {
    get;//这里只能定义这个属性是否为只读
    set;
    }
    }
    接口和抽象类比较相似,但一个类只能派生于一个抽象类,不过可以实现N个接口。


    举个例子来说明一下。
    有两个抽象类,car和train,,汽车和火车
    下面还有许多类,比如公交车,卡车等都派生于汽车
    客车,货车都派生于火车
    在car,train中公别定义了汽车与火车的一 些主要特性。
    自然的,它们的派生类就拥有这样的特性,
    但是汽车下的公交车,火车下的客车都可以乘载客人,所以这两个类可以共同实现一个拥有乘载客人功能的接口,而卡车与货车可以共同实现一个拥有运载货物的接口。


    一个类支持一个接品,就必须实现它所有的成员
    interface IMyinterface
    {
    void Dosomething();
    void Doelsething();
    }
    class Myclass:IMyinterface
    {
    void IMyinterface.Dosomething()
    {
    Console.WriteLine("1");
    }
    public virtual void Doelsethiing()
    {

    Console.WriteLine("2");
    }

    }
    class Myclass2:Myclass
    {
    public override void Doelsething()
    {
    Console.WriteLint(“3“);
    }
    }


    上面定义了一个接口IMyinterface, Myclass实现了这个接口, 这样,派生于Myclass的类Myclass2也就默认的支持这个接口,也继承了对方法的实现,在Myclass2中,还可以对Doelsething方法进行重写。
    但这是有前提的。那就是Doelsething方法是由Myclass类隐式实现的。隐式实现只须匹配方法返回值和方法签名即可。这样的方 法,可以使用关健字vritual 和 abstract来修饰,而且可以用类的实例类调用
    class obj=new Myclass();
    obj.Doelsethiing();

    而第一个方法Dosomething是显式执行的。它只能由接口的引用变量来调用。而且派生类不会继承这个方法的实现,所以上面的Myclass2类也要再加一个这个方法的实现 ,因为它继承了Myclass,就默 认的支持这个接口。

  • 相关阅读:
    linux 常用命令-编辑模式
    关于react虚拟DOM的研究
    oracle 分页的sql语句
    react+webpack+wepack-dev-server的环境中ant design图标离线的方法
    oracle 语句之对数据库的表名就行模糊查询,对查询结果进行遍历,依次获取每个表名结果中的每个字段(存储过程)
    eclipse 中使用git
    好东西要分享
    《梦断代码》阅读笔记二
    《梦断代码》阅读笔记一
    第二段冲刺进程4
  • 原文地址:https://www.cnblogs.com/mephisto/p/763180.html
Copyright © 2020-2023  润新知