C#多态的相关内容

多态

       让一个对象能够表现出多种状态

实现多态的三种手段

    • 虚方法
    • 抽象类  
    • 接口

虚方法

    Virtual修饰的方法叫做虚方法,虚方法在子类里面可以被重写

        重写:子类继承父类后对父类里面的虚方法重新实现

      虚方法在子类里面可以重写也可以不重写

抽象类

       抽象类和抽象方法由abstract修饰

    注意:

          抽象方法没有方法体

          抽象成员只能存在抽象类中

             抽象类可以有非抽象成员

          抽象类的派生类必须实现抽象方法体

          抽象类只能用作基类,无法实例化

接口

    • Interface关键字,接口中可以有属性、方法(未实现)
    • 接口的名称通常以I开头
    • 接口通常代表一种能力
    • 如果一个类继承了类又实现了接口,那么类必须写在前面
    • 一个类只能继承一个父类,但可以实现多个接口
    • 接口中的成员不能有任何访问修饰符,默认是public,如果手动添加就会报错
    • 接口中的成员不能有任何实现,就像抽象方法一样
    • 接口不能被实例化

接口和类的区别

  不同点

    • 不能直接实例化接口
    • 接口不包含方法的实现
    • 接口可以多继承,类只能单继承

  相同点

    • 接口、类和结构都可以从多个接口继承
    • 接口类似于抽象基类:继承接口的任何抽象类型都必须实现接口的所有成员
    • 接口和类都可以包含事件、索引器、方法和属性
posted @ 2017-10-26 19:50  幺零零幺  阅读(138)  评论(0编辑  收藏  举报