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) 时无法确定调用的是哪个,单从这一点上来说,仅返回值类型不同的重载是不应该允许的。

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

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

  • 相关阅读:
    windows 共享文件夹 给 mac
    给mac配置adb 路径
    关于android 加载https网页的问题
    http tcp udp ip 间的关系
    手机服务器微架构设计和实现专题
    添加ssh key
    本人对于线程池的理解和实践
    使用Android Butterknife
    记一次失败的笔试(华为研发工程师-汽水瓶笔试题)
    简易坦克大战python版
  • 原文地址:https://www.cnblogs.com/Dm920/p/12507958.html
Copyright © 2011-2022 走看看