• Overload和Override


    1、综述
    Override:重写;Overload:重载。
      这两者之间的区别在很多Java的面试笔试中都会经常被问到,下面我就捋一下他们的区别。重写(Override)也称覆盖,它是父类与子类之间多态性的一种表现,而重载(Overload)是一个类中多态性的一种表现。override从字面就可以知道,它是覆盖了一个方法并且对其重写,以求达到不同的作用。overload它是指我们可以定义一些名称相同的方法,通过定义不同的输入参数来区分这些方法,然后再调用时,虚拟机就会根据不同的参数样式,来选择合适的方法执行。
    2、Override(重写,覆盖)
    (1)方法名、参数、返回值相同。
    (2)子类方法不能缩小父类方法的访问权限。
    (3)子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。
    (4)存在于父类和子类之间。
    (5)方法被定义为final不能被重写。
    (6)被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。
    3、Overload(重载,过载)
    (1)参数类型、个数、顺序至少有一个不相同。
    (2)不能重载只有返回值不同的方法名。
    (3)针对于一个类而言。
    (4)不能通过访问权限、返回类型、抛出的异常进行重载;
    (5)方法的异常类型和数目不会对重载造成影响。
    4、Override应用
    (1)最熟悉的覆盖就是对接口方法的实现,在接口中一般只是对方法进行了声明,而我们在实现时,就需要实现接口声明的所有方法。
    (2)除了这个典型的用法以外,我们在继承中也可能会在子类覆盖父类中的方法。
    5、总结
       Override是在不同类之间的行为,Overload是在同一个类中的行为。Overload的方法可以改变返回值的类型,因为它与返回值类型无关。

  • 相关阅读:
    喵哈哈村的魔法考试 Round #19 (Div.2) B 快速加
    hdu5676 ztr loves lucky numbers DFS
    hdu 5950 Recursive sequence 矩阵快速幂
    AI大语音(三)—傅里叶变换家族
    AI大语音(二)——语音预处理
    AI大语音(一)——语音识别基础
    第二章:声学模型之EM算法
    量子力学2
    量子力学1
    C#学习系列(一)——C#和C++的区别
  • 原文地址:https://www.cnblogs.com/firecode7/p/16120463.html
Copyright © 2020-2023  润新知