重载与重写有什么区别?

区别方法重载(Overload)方法重写(Overwrite/Override)
两个方法位置同一个类中或父子类子类中
权限修饰符

1.private方法不能被重写

2.重写方法的权限修饰符要满足>=被重写方法的权限修饰符

其他修饰符final、static修饰符的方法不能被重写
返回值类型

1.基本数据类型和void:必须相同

2.引用数据类型:重写方法的返回值类型要满足<=重写方法的返回值类型

方法名必须相同必须相同
形参列表必须相同必须相同
throws异常列表

1.被重写方法没有throws编译时异常类型,重写方法不能throws编译时异常类型

2.被重写方法throws编译时异常类型,重写方法throws的编译时异常类型必须<=被重写方法throws编译时异常类型

3.throws运行时异常类型不做任何检查

什么时候确定调用哪个方法在编译时期确定调用哪一个方法,由传递给方法的实际参数类型和数量决定在运行时期确定调用哪一个方法,这依赖于对象的实际类型

问: Java支持运算符重载吗?为什么?

Java不支持运算符重载。Java的设计 目的是为了提供一种简洁清晰的编程语言,避免过度使用运算符重载导致代码难以理解和维护。

问:构造器可以被重载和重写吗?构造器可以重载,但不能重写。

问:私有方法能被重载或重写吗?私有方法可以重载,但是不能重写。

问:静态方法可以被继承吗?可以。调用父类的静态方法可以通过“父类名.静态方法”,也可以通过“子类名静态方法”。

问:静态方法能被重载或重写吗?静态方法可以重载,但不能重写。子类如果定义了相同签名的静态方法,也不算重写。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值