java 方法重写

4.1.6.1. 重写原理
当⼦类希望实现⽗类⽅法功能之外的⼀些功能时 , 如何处理 ?
分析 :
解决 :
⼦类可以继承到⽗类中的属性和⽅法, 但是有些⽅法, ⼦类的实现与⽗类的⽅法可
能实现的不同。 当⽗类提供的⽅法已经不能满⾜⼦类的需求时, ⼦类中可以定义与
⽗类相同的⽅法。
当出现同名⽅法后 , ⽅法如何调⽤ ?
这时⼦类⽅法完成对⽗类⽅法的覆盖, ⼜叫重写( Override )。
class Phone extends Object{
 String color;
 int model;
 public void callPhone(){
 System.out.println("打电话");
 }
 
 public void show(){
 return null;
 }
 }

class Iphone extends Phone{
 String gui;
 public void fangShui(){
 System.out.println("防⽔");
 }
 @Override
 public void callPhone(){
 //公共的功能
 //System.out.println("打电话");
 //通过super调⽤⽗类的callPhone⽅法
 super.callPhone();
 //⾃⼰的功能
 System.out.println("⾃⼰的功能");
 }
 //⽗类返回值是Phone,⼦类的show返回值是Iphone,重写时,程序允许返回值不
同
 //重写的注意点:⽗类和⼦类的重写⽅法返回值可以不同,但是⽅法名,参数必须相
同.返回值不同时,
 //必须保证⽗⼦类的重写⽅法的返回值有继承关系,并且⼦类中的返回值的类型是
⽗类的返回值类型或者⼦类类型
 //在同⼀个类中不允许出现⽅法名,参数都相同,但是返回值不同的情况.
 public Iphone show(){
 return null;
 }
}
1.1. @Override
⼀个注解, 进⾏重写前的校验。 校验这个⽅法是否是⼀个重写的⽅法。 如果不是重
写的⽅法, 会直接报错。
1.2. 重写的注意事项
⽅法名字必须和⽗类⽅法名字相同
参数列表必须和⽗类⼀致
⼦类⽅法的访问权限需要⼤于等于⽗类⽅法的访问权限 , ⽗类不能是 private
⼦类⽅法的返回值类型需要⼩于等于⽗类⽅法的返回值类型 -- 这⾥说的是引⽤类
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值