java基础-重写

在上篇java基础-继承后今天我们学习重写!!!

一. 概念

        重写就是在继承(子类继承父类,继承关键字是extends)的前提下子类重写父类的方法说白了就是子类中存在和父类里方法名相同,参数的个数和类型一样,返回值类型也一样的方法就是方法的重写好处是可以对父类中的方法进行扩充因为继承用的是父类的东西,重写则不仅得到父类的东西,同时也加入了自己的东西

二. 应用

        场景:在老式手机中有发短信,玩游戏,来电显示的功能,智能手机则在老式手机的基础上来电显示功能新增了显示号码归属地以及用户头像的功能

        代码如下:

                1. 定义一个父类:

public class TelePhone {
//    发短信
    public void send() {
        System.out.println("发短信。。。。。。");
    }

//    玩游戏
    public void play() {
        System.out.println("玩游戏。。。。。。");
    }

//    来电显示
    public void back() {
        System.out.println("来电显示你的电话号码");
    }
}

                2. 定义一个子类并继承父类:

public class NewPhone extends TelePhone {

    public void back() {
//        System.out.println("来电显示你的电话号码");
        super.back();
        System.out.println("显示头像");
        System.out.println("显示号码归属地");
    }

}

                3. 创建测试类:

public class Test {
    public static void main(String[] args) {

/*      方法的重写:
            1、子父类关系  继承的前提下
            2、子类与父类方法名相同,参数的个数和类型一样,返回值数据类型一样
            3、应用场景
                子类拥有父类相同的功能,并且进一步加强
        
        注意事项:
            1,子类方法覆盖父类方法,必须要保证权限大于等于父类权限。
            2.子类方法覆盖父类方法,返回值类型、函数名和参数列表都要一模一样。*/

        NewPhone phone = new NewPhone();
        phone.send();
        phone.play();
        phone.back();
    }
}

                   4. 运行结果如下:

三. 注意事项:

       1. 子类方法覆盖父类方法,必须要保证权限大于等于父类权限
       2. 子类方法覆盖父类方法,返回值类型、函数名和参数列表都要一模一样

       3. 子类抛出的异常下不能超过父类相应方法抛出的异常(子类异常不能大于父类异常)

       4. 新方法将覆盖原有的方法。 如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类

        5. 父类的成员方法只能被它的子类重写

        6. 声明为final的方法不能被重写

        7. 声明为static的方法不能被重写,但是能够被再次声明

        8. 子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为private和final的方法

        9. 子类和父类不在同一个包中,那么子类只能够重写父类的声明为public和protected的非final方法

        10. 构造方法不能被重写

        11. 如果不能继承一个方法,则不能重写这个方法
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值