比较Java方法的重载与覆盖

重载(overload) 覆盖(override)
概念 存在于同一个类中的多个同名方法,返回值类型相同,参数列表不同 派生类重新定义与基类方法同名的方法,返回值类型和参数列表均相同,只是行为不同
出现位置 同一个类中 有继承关系的不同类中
返回值类型 相同 相同
参数列表 参数个数不同,或参数类型不同 相同
特点 与返回值类型无关,只关注参数列表
(1)派生类方法可以分配与基类方法同样或更大的访问权限

(2)派生类不能覆盖标记为final的基类方法

(3)派生类方法可以抛出与基类方法相同的异常、子类异常、运行时异常或错误,但是不能抛出新的异常或超类异常

应用场景 完成同样任务且只是输入量不同的场景,使用同名方法便于阅读 需要重新定义继承行为的场景,这也往往是使用继承关系的主要目的
时间: 2024-10-27 08:12:18

比较Java方法的重载与覆盖的相关文章

Java——方法的重载

方法的重载就是在同一个类中可以同时存在多个同名的方法,只要这些方法的参数或类型不同.方法重载可以使两个方法的返回值不同,但只有返回值还不足以区分两个方法的重载,还需要通过参数的类型.个数.长度来设定.一个简单地例子: public class OverLoadTest { public static int add(int a ,int b){ return a+b; } public static double add(double a ,double b){ return a+b; } pu

java方法的继承,覆盖与重载

java中的继承使用extends关键字,在子类继承了父类之后将会获得父类的全部属性与方法(父类的构造器除外).如果在定义java类时没有显示定义她的父类,那么这个类默认将扩展java.lang.Object类.因此java.lang.Object是所有类的父类,要么是直接父类,要么就是间接父类. 方法的覆盖(Overridden Methods)    在类继承中,子类可以修改从父类继承来的行为,也就是说子类能创建一个与父类方法有不同功能的方法,但具有相同的:名称.返回类型.参数列表.如果在新

JAVA方法的重载(overload)和覆盖(override)

方法的重载(overload)和覆盖(override) 有的时候,类的同一种功能有多种实现方式,到底采用哪种实现方式,取决于调用者给定的参数.例如我们最常用的System.out.println()能够打印出任何数据类型的数据,它有多种实现方式.运行时,Java虚拟机先判断给定参数的类型,然后决定执行哪个println()方法. 重载(overload):对于类的方法(包括从父类中继承的方法),方法名相同,参数列表不同的方法之间就构成了重载关系.这里有两个问题需要注意: (1)       什

java中方法的重载和覆盖分别要满足的条件

1.重载:遵循“两同三不同” 两同:同一个类中的同名方法 三不同:形参的类型,个数,顺序不同 特别提醒: 返回值不同构不能方法重载 形参名称不同构不成方法重载 2.覆盖(重写)的要求 子类方法的名称,返回类型必须与父类一致. 子类方法不能缩小父类方法的访问权限 子类方法不能抛出比父类方法更多的异常 方法覆盖只存在于子类和父类,同一个类中方法只能被重载 父类的静态方法不能被子类覆盖 子类可以定义与父类的静态方法同名的静态方法 父类的非静态方法不能被子类覆盖为静态方法 父类的私有方法不能被子类覆盖

JAVA基础之重载,覆盖/重写,多态

重载发生在同一个类中 特点是两同一不同,类相同,方法名相同,参数不同.其他项与重载无关. 在调用方法的时候,会根据方法名的不同判断具体调用哪个方法. 创建一个Driver类,类中实现了对driver方法的重载操作. public class Driver { //实现了重载操作 public void drive(){ System.out.println("No Parameter"); } public void drive(String driver){ System.out.p

java 方法的重载重写

面向对象有三大特性:封装,继承,多态 多态则需要满足三大条件1要有继承2要有重写3父类引用子类对象 很多人对方法的重载重写有很大疑问,下面我来介绍一下方法的重载重写 方法重载就是方法名称重复,加载参数不同 满足的条件: 一.方法名一定要相同. 二.方法的参数表必须不同,包括参数的类型或个数,以此区分不同的方法体. 1.如果参数个数不同,就不管它的参数类型了! 2.如果参数个数相同,那么参数的类型必须不同. 三.方法的返回类型.修饰符可以相同,也可不同. class MethodOverloadi

java -> 方法的重载

方法的重载 我们假设要在程序中实现一个对数字求和的方法,由于参与求和数字的个数和类型都不确定,因此要针对不同的情况去设计不同的方法.接下来通过一个案例来实现对两个整数相加.对三个整数相加以及对两个小数相加的功能,具体实现如下所示.MethodDemo02.java public class MethodDemo02 { public static void main(String[] args) { // 下面是针对求和方法的调用 int sum1 = add01(1, 2); int sum2

Java——方法的重写(覆盖)

2.2方法的重写(覆盖)(override,orverwrite) 2.2.1 什么时候方法要进行重写? 如果父类中的方法已经无法满足当前子类的业务需求,需要将父类中的方法进行重新写一遍.就是要改变父类的行为. 注意:子类如果重写父类中的方法之后,子类对象一定调用的是重写之后的方法. 2.2.2 发生方法覆盖的条件 ①发生在具有继承关系的两个类之间 ②必须具有相同的方法名,相同的返回值类型,相同的参数列表. ③重写的方法不能比被重写的方法拥有更低的访问权限. ④重写的方法不能比被重写的方法抛出更

详解java方法的重载

1.方法的重载: 方法名相同,参数列表不同就叫做方法的重载. 2.怎样正确区分方法是不同的方法: 1.看方法名名是否相同,方法名不同即为不同的方法 2.看参数列表是否相同.参数列表的不同分为两部分:a. 参数个数不同 b.参数的数据类型不同. 注意: a.方法的重载和返回值/修饰符列表无关. b.如果方法名相同,参数列表相同,则此方法是重复的,是个错误. 3.方法的执行原理: 方法不调用不执行,一调用才执行,调用的结果返回到方法的调用处. 4.从内存数据结构分析方法的调用: 方法在调用的时候,才