java中方法的重写与重载

文章详细阐述了Java中方法重写(Override)与重载(Overload)的区别。重写发生在子类对父类方法的实现,要求方法名、参数列表完全相同,返回类型可兼容,权限不低于父类。重载则在同一类中,通过方法名相同但参数列表不同来实现。识别二者的关键在于@Override注解的使用及方法签名的匹配。
摘要由CSDN通过智能技术生成

java中方法的重写与重载

2023.2.15

先观察两者之间的区别:

方法重写方法重载
出现位置子类与父类中、接口与实现类中同一个类中
方法名、参数和返回类型方法名和参数列表完全相同,重写方法的返回值可以是被重写方法返回值的子类方法名一致,返回类型与重载无关,参数个数、顺序和参数类型不同
修饰符重写后的修饰符权限必须大于等于重写前的权限可以有不同修饰符
异常的抛出只能抛出非运行时异常,以及比被重写方法声明更狭隘的异常可以抛出不同的异常

区分方法重写和重载:

  1. 最简单直接的办法就是编译器中重写方法上会带一个注解@Override,而重载方法不会带@Overload(override=>重写,overload=>重载,有时候人家不会问你重写和重载的区别,而是override和overload的区别)
    请添加图片描述
  2. 直接将两个方法的返回类型、方法名、参数类型放一起进行比较,如果在一个方法在父类一个方法在子类或者一个方法在接口一个方法在实现类的前提下完全一致,则为重写(不包括修饰符的比较)请添加图片描述
    其中参数的顺序不是看其中的a,b,c,而是看前面的参数类型,即使更换,也不会影响方法的重写,原理可以参考c语言的形参与实参
    请添加图片描述
    只要不满足重写中的完全相同,则注解会报错(此处顺序被修改)请添加图片描述
    而重载就看方法名是否相同,是否在同一个类,参数是否有改变即可
    请添加图片描述
    同样的,参数的顺序指的是类型的顺序,只改变形参顺序只会报错:方法重复请添加图片描述
    只改变返回值,也不是重载
    请添加图片描述
总结:判断重写和重载首先拿到两个方法看方法名、方法返回值、方法参数,如果三者都相同,权限不小于被重写方法,且在父子类或者接口和实现类中,则为重写;方法名相同,参数顺序、数量、类型发生改变,则为重载。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值