JAVA思想:继承的方法覆盖的作用

在继承后,如果子类和父类中有同名的方法,子类调用同名的方法后,调用的是子类自己的方法,这就叫做覆盖。

当我们开发时,原有的父类---A类功能已经不够强了,我们需要对他进行功能修改,但又不能改动他的代码,因此我们可以用B类继承A类,然后在B类中重写A类的功能方法,达到不修改A类就能改动A类功能的目的。


注意:为什么不能改动父类的代码?

  因为实际开发中,原有的代码可能包括很多类,类与类之间可能又有很多关联,所谓牵一发而动全身,所以尽量是不改动原有的代码。


拿手机为例,一家手机公司的的phone1产品 太老了,功能不好使,因此公司就开发了新的产品phone2

例如:

class phone1
{
    public void call()  //phone1的打电话功能
    {
        System.out.println("version1 call");
    }
    public void photo() //phone1的拍照功能
    {
        System.out.println("version1 photo");
    }
}

class phone2 extends phone1
{
    public void call()  //phone2继承了phone1的打电话和拍照功能,但重写了打电话功能,使打电话功能更高级,也意味着产品的升级
    {
        System.out.println("version2 call()");
    }
}

public class Main {
    public static void main(String[] args)
    {
       phone2 p = new phone2(); //这样的话,phone2就既有phone1的所有原有功能,又有phone2对phone1的call功能改进后的版本2的call功能
        p.call();
    }
}
打印结果:version2 call

在实际开发中,用这种方法就可以完成产品升级而不需要改动原有的父类代码。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值