• 抽象类和抽象方法的特征和用途


    //抽象方法:只包含方法定义,但没有具体实现的方法,需要其子类或者子类的子类来具体实现。
    //静态方法不能标记为 override、virtual 或 abstract,即静态方法都必须是具体的
    /抽象类:含有一个或多个抽象方法的类称为抽象类,在声明时,类名前须添加"abstract"关键字
    //抽象类中可以包含非抽象方法
    //抽象类不能够被实例化,这是因为它包含了没有具体实现的方法,即可实例化的类一定不是抽象类,不包含未具体实现的抽象方法。
    //子类继承抽象父类后,可以使用override关键字覆盖父类中的抽象方法,并做具体的实现。也可以不实现抽象方法,留给后代实现,这时子类仍旧是一个抽象类,必须声明为abstract
    //继承的抽象方法不可以被隐藏
    //隐藏:在子类中创建与父类中的方法具有相同签名(相同的方法名,相同的参数列表--参数类型和次序)的方法(可以带有"virtual"或"override"关键字)即可实现,但建议使用"new"关键字,以明确地隐藏。
    //只能使用"override"关键字来覆盖(override)父类中标记为"virtual"、"abstract"或"override"的方法,而子类中标记为override的方法,也必须是父类中标记为"virtual"、"abstract"或"override"的方法。
    //覆盖(override):必须使用override关键字,可以被覆盖的方法包括标记为abstract,virtual,和override的方法;
    //隐藏:使用new关键字,也可不使用关键字,可以被隐藏的方法包括一般方法,和标记为virtual"或"override"的方法;
    //重载(overload):不需要任何特殊的关键字
    //静态方法可以被隐藏或重载

    举个例子

    //抽象类
    abstract class 画图类
    {
    public void 画图
    {}
    }

    //继承类
    class 画三角类 :画图类
    {
    public void 画图
    {
    //实现画三角的方法
    }

    //继承类
    class 画圆类 :画图类
    {
    public void 画图
    {
    //实现画圆的方法
    }
    }

    ok !

    画图类  paint1 = new 画三角类() ;
    paint1.画图();//画三角

    画图类  paint2 = new 画圆类() ;
    paint2.画图();//画圆

  • 相关阅读:
    AWTK-MVVM 在 STM32H743 上的移植笔记
    windows 中文 unicode 编码显示
    SpringBoot项目jar包运行
    Activiti中的互斥网关、并行网关、兼容网关、事件网关
    【LeetCode】739.每日温度(5种方法,详细图解)
    【LeetCode】20.有效的括号(使用栈,动图详解)
    你知道权限管理的RBAC模型吗?
    关闭Win10自动更新
    iOS 中如何判断当前是2G/3G/4G/5G/WiFi
    GCD API 记录 (三)
  • 原文地址:https://www.cnblogs.com/zhangzt/p/1612689.html
Copyright © 2020-2023  润新知