Java之重写与重载区别

Java之重写与重载区别

开发工具与关键技术:MyEclipse 10,java
作者:刘东标
撰写时间:2019-05-06

方法的重载(Overload)
概念:在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型或者参数顺序不同即可。

存在的原因:屏蔽了一个对象的同一类方法由于参数不同所造成的差异

特点:与返回值类型无关,只看参数列表

重载规则:1、被重载的方法必须形参列表不一样(参数个数或类型不一样)
2、被重载的方法可以改变返回类型
3、被重载的方法可以改变访问修饰符
4、被重载的方法可以声明新的或更广的检查异常
5、方法能够在同一个类中或者在一个子类中被重载
6、返回值类型不能作为重载函数的区分标准
eg:public void a(int a){} 、public int a(){} 、public void a(int a,String s){}

总结:方法重载,方法名相同,但是参数列表不一致!(和方法覆写不一样,方法覆写的方法和参数列表都必须一样),注意方法重载和方法覆写的不同!

方法的重写(Override)
概念:重写是子类对父类的允许访问的方法的实现过程进行重新编写!返回值和形参都不能改变。即外壳不变,核心重写!
重写的好处在于子类可以根据需要,定义特定于自己的行为。
也就是说子类能够根据需要实现父类的方法。
在面向对象原则里,重写意味着可以重写任何现有方法

方法的重写规则:1、参数列表必须完全与被重写方法的相同;
2、返回类型必须完全与被重写方法的返回类型相同;
3、访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方 法被声明为public,那么在子类中重写该方法就不能声明为protected。
4、父类的成员方法只能被它的子类重写。
5、声明为final的方法不能被重写。
6、声明为static的方法不能被重写,但是能够被再次声明。
7、子类和父类在同一个包中,那么子类可以重写父类所有除了声明为private和final 的方法。
8、子类和父类不在同一个包中,那么子类只能够重写父类的声明为public和 protected的非final方法。
9、重写的方法能够抛出任何非强制异常,无论被重写的方法是否抛出异常。但是, 重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性 异常,反之则可以。
10、构造方法不能被重写。
11、如果不能继承一个方法,则不能重写这个方法。

重写与重载之间的区别
区别点 重载方法 重写方法
参数列表 必须修改 一定不能修改
返回类型 可以修改 一定不能修改
异常 可以修改 可以减少或者删除,一定不能抛出新的或者更广的异常
访问 可以修改 一定不能做更严格的限制(可以降低限制)

总结:1、方法重载是一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同 而类型和次序不同,则称为方法的重载(Overloading)。
2、方法重写是在子类存在方法与父类的方法的名字相同,而且参数的个数与类型一 样,返回值也一样的方法,就称为重写(Overriding)。
3、方法重载是一个类的多态性表现,而方法重写是子类与父类的一种多态性表现
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值