zoukankan      html  css  js  c++  java
  • 面向对象的设计三大特征:二 多态

    多态的两个明显的特点:

    1. 从父类继承而来的子类可以转换成其父类。

    2. 父类中的virtual方法,每个子类都可以override各自的方法;当用父类来引用这些子类,同样的操作而可以表现出不同的操作结果,就是多态。

    子类继承基类的所有方法,字段,属性,事件。子类可以选择:

    1. Override 基类中的virtual成员

        a. 只有方法、属性、事件和索引器(Indexers)可以是virtual,字段(Fields)不可以为virtual。

        b. 继承类只能override基类的virtual或abstract成员。

    2. 继承基类的virtual成员,不去override

    3. 用new去重写基类中非virtual的成员

    密封(Sealed Override)

    基类含有virtual成员,它的继承类(各个级别)都可以override。如果希望停止覆写需要用sealed override。之后的类只能用new去重新定义方法。

    D classD = new D();

    classD.DoWork();                  //调用方法D

    A classA = new A();

     classA = (A)classD;               //方法也具有继承性,调用方法C

    B和C都可以override A中的方法, 但是C用了Sealed, D就不能再override Dowork()方法了,只能用New; 当用父类去引用子类时(A指向D),我们发现override方法沿用继承的特性,由上至下直到找到方法C,并调用之。

  • 相关阅读:
    openssl 生成pfx
    webpack 编译时,提示 Unexpected token: keyword «const»
    .net core 使用 Serilog 作为日志提供者
    k近邻算法
    vscode 无法自动补全第三方库
    centos 7 安装 RabbitMQ
    .net core 发布程序命令(自带运行环境)
    安装node-sass
    .net core 拦截socket
    SDN第三次作业
  • 原文地址:https://www.cnblogs.com/xiao9426926/p/5825601.html
Copyright © 2011-2022 走看看