zoukankan      html  css  js  c++  java
  • 重载(Overload)和重写(Override)

    1. 重写(Overriding) 和 重载(Overloading)

    方法的重写(Overriding)和重载(Overloading)是java多态性的不同表现,重写是父类与子类之间多态性的一种表现,重载可以理解成多态的具体表现形式。

    ① 重载是一个类中定义了多个方法名相同,而他们的参数的数量不同数量相同而类型和次序不同,则称为方法的重载(Overloading)

    ② 重写是在子类存在方法与父类的方法的名字相同,而且参数的个数与类型一样返回值也一样的方法,就称为重写(Overriding)

    ③ 方法重载是一个类的多态性表现,而方法重写是子类与父类的一种多态性表现。

    ● 区别

    方法的重载重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性

    2. 华为的面试题:为什么不能根据返回类型来区分重载?

    因为调用时不能指定类型信息,编译器不知道你要调用哪个函数

    float max(int a, int b);
    int max(int a, int b);

    当调用 max(1,2) 时无法确定调用的是哪个,单从这一点上来说,仅返回值类型不同的重载是不应该允许的。

    从编译器的角度来看,它会将一个函数签名(包括它的函数名&参数列表)以前缀或后缀的方式组织成一个名称。

    这里不包括它的返回值,所以从编译器的角度来来看,这两个函数是同一个,区分不开。

  • 相关阅读:
    常用函数
    MySQL查询
    mysql的数据类型
    swoole简单demo测试
    linux下搭建lamp环境以及安装swoole扩展
    Linux下NAT模式和桥接模式的网络配置
    PhpStorm+xdebug+postman调试
    windows Apache 环境下配置支持HTTPS的SSL证书
    Yii2 restful api创建,认证授权以及速率控制
    Windows下开启composer镜像服务来安装yii
  • 原文地址:https://www.cnblogs.com/Dm920/p/12507958.html
Copyright © 2011-2022 走看看