JAVA方法的重载(Overload)与重写(Override)的区别

方法的重载(Overload)与重写(Override)的区别

一、重载

【1】什么是方法的重载:

方法的重载是指一个类中可以定义多个方法名相同,但参数不同的方法。 调用时,会根据不同的参数自动匹配对应的方法。

注意本质:重载的方法,实际是完全不同的方法,只是名称相同而已!

【2】构成方法重载的条件:

1)不同的含义(参数列表不同):形参类型、形参个数、形参顺序不同

2) 只有返回值不同不构成方法的重载
如:int a(String str){}与 void a(String str){}不构成方法重载

3) 只有形参的名称不同,不构成方法的重载
如:int a(String str){}与int a(String s){}不构成方法重载

4)、可以有不同的访问修饰符;

5)、可以抛出不同的异常;

【3】注意:方法的重载只跟:方法名和形参列表有关,与修饰符,返回值类型无关。

二、重写

【1】什么是重写:

发生在子类和父类中,当子类对父类提供的方法不满意的时候,要对父类的方法进行重写。但要注意子类函数的访问修饰权限不能少于父类的。

【2】重写的规则

1)、参数列表必须完全与被重写的方法相同,否则不能称其为重写而是重载。

2)、返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写而是重载。

3)、访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private)

4)、重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常。例如:

父类的一个方法申明了一个检查异常IOException,在重写这个方法是就不能抛出Exception,只能抛出IOException的子类异常,可以抛出非检查异常。

三、两者之间的区别

【1】重载和重写的区别:

重载:在同一个类中,当方法名相同,形参列表不同的时候 多个方法构成了重载。
重写:在不同的类中,子类对父类提供的方法不满意的时候,要对父类的方法进行重写。
在这里插入图片描述

【2】重载和重写是完全两个不同的概念,不能混淆。但两者都是提高了代码的可扩展性与灵活性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值