zoukankan      html  css  js  c++  java
  • A.4继承,方法重写(覆盖)(override),虚函数(virtaul)和多态,抽象方法和抽象类abstract,密封类(sealed)和密封方法,常量的定义(const)

    ylbtech- .NET-Basic: A.4-继承,方法重写(覆盖)(override),虚函数(virtaul)和多态,抽象方法和抽象类abstract,密封类(sealed)和密封方法,常量的定义(const)

     A.4-继承,方法重写(覆盖)(override),虚函数(virtaul)和多态,抽象方法和抽象类abstract,密封类(sealed)和密封方法,常量的定义(const)

    1.A,运行效果图返回顶部
     
    三、继承

    1、继承的语法实现:
    class 子类名 : 基类名{}

    2、子类构造方法的实现,及base关键字的使用; ---super
    1)通过base子类可以访问基类的成员,
    2)在子类的构造方法中可以通过 base来访问基类的构造方法:
    public 子类构造(参数列表) : base(参数列表)
    {

    }

    3、方法的重写(覆盖)
    public 返回值类型 方法名(); //会出现警告的
    OR
    new public 返回值类型 方法名();

    如果,new 后面的方法声明,不构成对父类方法的覆盖,不会报错, 但会有警告


    总结:
    override:如果被重写方法时virtual,abstract
    new,除此以外,重写都可以用new ,或者不写


    4、虚函数virtual和多态的实现;
    虚函数(virtual):主要目的就是为了让子类重写,这样的方法可以有方法体
    abstract

    子类的重写格式 :
    override 返回类型 方法名()
    5、抽象方法和抽象类abstract
    抽象方法和虚方法的区别;

    6、密封类和密封方法sealed --类似java中的 final
    密封的方法不能被重写,
    密封的类不能被继承

    sealed针对的时子类,以及子类重写的方法

    7、常量的定义:
    语法:
    public const 类型 常量名称 = 值; //常量一定是全局的因此不能使用
    static ,加了算错

    任务:
    1、实现以下类的定义
    1)定义一个人类封装以下成员
    成员变量(编号,姓名,年龄)
    成员方法(空/全参构造,show)
    属性
    2)定义一个学生类继承人类
    成员变量(班级)
    成员方法(空/全参构造,show)
    属性
    3)定义一个教师类继承人类
    成员变量(专业)
    成员方法(空/全参构造,show)
    属性
    4)Program测试类,测试学生类,和教师类的所有方法;

    2、实现以下类的定义,
    1)定义一个动物类封装以下成员
    成员变量(名称)
    成员方法(空/全参构造,吃、show(虚方法))
    属性
    2)定义一个猫类继承动物类
    成员变量(颜色)
    成员方法(空/全参构造,重写吃、show)
    属性
    3)定义一个鱼类继承动物类
    成员变量(重量)
    成员方法(空/全参构造,重写吃、show)
    属性
    4)Program测试类,用动物类的引用来测试猫类、鱼类对象的所有方法;

    3、实现以下类的定义,
    1)定义一个形状类封装以下成员
    成员变量(常量:圆周率)
    成员方法(抽象的求面积、求周长)

    2)定义一个圆形类继承形状类
    成员变量(半径)
    成员方法(空/全参构造,以及其他必须实现的方法)
    属性
    3)定义一个长方形类继承形状类
    成员变量(长,宽)
    成员方法(空/全参构造,以及其他必须实现的方法)
    属性
    4)Program测试类,测试圆形类和长方形类;

    4、将上一题中的圆形类中的面积,周长的方法设着成为密封的,然后创建该类的子类测试
    该方法是否能被重写;将长方形类设置成为密封得,测试这个类是否能被继承;

    warn 作者:ylbtech
    出处:http://ylbtech.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    利用CWinThread实现跨线程父子MFC窗口
    GetForgroundWindow函数的不确定性——BUG笔记
    DLL动态链接库的创建
    php正则讲解 及与 js的正则比较
    cookie和session的讲解
    两种排序的方法 冒泡法 插入法 封装版
    php中获取当前时间
    文件下载及header方法介绍
    文件上传
    二分法封装版
  • 原文地址:https://www.cnblogs.com/ylbtech/p/2980825.html
Copyright © 2011-2022 走看看