zoukankan      html  css  js  c++  java
  • C#抽象类、抽象方法、虚方法

    定义抽象类和抽象方法:

      abstract

    抽象类特点:

      1、不能初始化的类被叫做抽象类,它们只提供部分实现,但是另一个类可以继承它并且能创建它们的实例

      2、一个抽象类可以包含抽象和非抽象方法,当一个类继承于抽象类,那么这个派生类必须实现所有的的基类抽象方法

      3、通过声明派生类也为抽象,我们可以避免所有或特定的虚方法的实现,这就是抽象类的部分实现

      4、一个抽象类能够继承另一个非抽象类,另外,继承了基类的方法,添加新的抽象和非抽象方法是可行的

      5、一个抽象类也能从一个接口来实现,这种情况,我们必须为所有的方法提供方法体,这些方法是来自接口

      6、一个抽象类必须为所有的接口成员提供实现,一个用于实现接口的抽象类可能把接口方法安排到抽象方法上

    抽象方法特点:

      1、abstract关键字只能用在抽象类中修饰方法,并且没有具体的实现。抽象方法的实现必须在派生类中使用override关键字来实现

      2、一个抽象方法可以看作是一个虚函数,抽象方法的声明只能在抽象类中

      3、抽象方法声明只提供一个无实现的方式,没有方法体

      4、方法体的实现被覆写方法提供,覆写方法是一个非抽象类的成员

      5、抽象属性的行为和抽象方法相像,除了不同的声明形式

      6、在一个静态属性中使用abstract 是一个错误

      7、一个抽象属性能够通过派生类使用 override 实现

    Virtual 用于定义虚方法:

      virtual 关键字用于在基类中修饰方法。virtual的使用会有两种情况

      1、在基类中定义了virtual方法,但在派生类中没有重写该虚方法。那么在对派生类实例的调用中,该虚方法使用的是基类定义的方法

      2、在基类中定义了virtual方法,然后在派生类中使用override重写该方法。那么在对派生类实例的调用中,该虚方法使用的是派生重写的方法

  • 相关阅读:
    route add提示: "SIOCADDRT: No such process
    linux下route命令--说的比较清楚!
    linux route命令的使用详解
    Linux命令学习手册-route命令
    workqueue --最清晰的讲解
    udhcpc命令
    Mutex, semaphore, spinlock的深度解析
    dev_alloc_skb(len+16) skb_reserve(skb,2) skb_put(skb,len)
    skb_reserve(skb,2)中的2的意义
    option和 usb-serial驱动基本区别
  • 原文地址:https://www.cnblogs.com/alsofly/p/3373899.html
Copyright © 2011-2022 走看看