zoukankan      html  css  js  c++  java
  • 多态

    同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态,这种特性称为多态性。

    多态一般分为两种:一种是编译时的多态性,一种是运行时的多态性

    编译时的多态性(重载):编译时的多态性是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。
    运行时的多态性(重写):运行时的多态性就是指直到系统运行时,才根据实际情况决定实现何种操作。C#中运行时的多态性是通过覆盖虚成员实现的。


    编译时多态需要通过重载(overload)进行实现。重载指的是同一个类中有两个或多个名字相同但是使用的参数类型、个数或顺序不同。关于重载,需要注意以下几点:
    1)从重载的定义来看,重载是一种编译时多态。
    2)重载不需要事先定义可重载的方法,即没有关键字。
    3)重载只是针对一个类内部的几个参数不同、名称相同的方法。

    运行时的多态性是指直到运行时,才根据实际情况决定实现何种操作。运行时多态需要通过重写来实现。重写有两种,一种需要使用override修饰符,另一种需要使用new修饰符。
    1)使用override实现运行时多态,也称为重写或过载。重写是指子类对父类中虚方法或抽象方法的"覆盖",但是这种"覆盖"和用new关键字覆盖是有区别的。
    2)使用new实现运行时多态,这种情况称为覆盖。覆盖指的是不同类中(基类或派生类)有两个或多个返回类型、方法名、参数都相同而方法体不同的方法。但是这种覆盖是一种表面上的覆盖,所以也叫隐藏,被覆盖的父类方法时可以调用得到的。

  • 相关阅读:
    二维数组转换
    二维数组转换
    二分法原理
    二维数组举例
    二分法原理
    二维数组举例
    二分法原理
    二分法原理
    linux中BIND服务程序安全的加密传输TSIG机制
    linux系统中部署DNS从服务器
  • 原文地址:https://www.cnblogs.com/ahao214/p/9489542.html
Copyright © 2011-2022 走看看