方法的重写

方法的重写

方法重写概述

方法重写

什么时候考虑使用方法重写?

​ 父类中的方法无法满足子类的业务需求,子类有必要对继承过来的方法进行重写。
​ 子类有权利对这个方法进行重新编写,有必要进行“方法的重写”。

什么条件满足的时候构成方法重写?

​ 1.两个类必须要有继承关系。
​ 2.重写之后的方法和之前的方法具有:
|–相同的返回值类型–|
|–相同的方法名–|
|–相同的形式参数列表–| ​
​ 3.访问权限不能更低,可以更高。
​ 4.重写之后的方法不能比之前的方法抛出更多的异常,可以更少。
重要结论:
​ 当子类对父类继承过来的方法进行“方法重写”之后,
​ 子类对象调用该方法的时候,一定执行重写之后的方法。

注意事项:(与多态语法有关)
​ 1.方法重写只是针对于方法,和属性无关。
​ 2.私有方法无法重写。
​ 3.构造方法不能被继承,所以构造方法也不能被重写。
​ 4.方法重写只是针对于“实例方法”,“静态方法重写”没有意义。

方法重写的应用
当籽类需要父类的功能,而功能主体子类有自己特有内容时,可以写父类中的方法,这样,即沿袭了父类的功能,又定义了子类特有的内容。
练习:手机类和新手机类

package cn.tedu;
//手机类
public class Phone {
    public void call(String name){
        System.out.println("给"+name+"打电话");
    }
}

package cn.tedu;
//新手机
public class NewPhone extends Phone {
   /* public void call(String name){
        System.out.println("开启视频功能");
        super.call(name);*/

    // @Override
        public void call(String name){
            System.out.println("开启视频功能");
            super.call(name);
    }
}

package cn.tedu;

public class PhoneDemo {
    public static void main(String[] args) {
        //创建对象 调用方法
        Phone p=new Phone();
        p.call("刘");
        System.out.println("--------");

        NewPhone np=new NewPhone();
        np.call("刘");

    }
}

运行结果
在这里插入图片描述
@Override
1.是一个注释(注释后面学习会用到)。
2.可以帮助我们监察重写方法的方法声明的正确性。

方法重写注意事项

1.私有方法不能被重写(父类私有成员子类是不能继承的)
2.子类方法访问权限不能更低(public>默认>私有)

package cn.tedu_1;

public class Fu {
    private void show(){
        System.out.println("Fu中show()方法被调用");
    }
    public void method(){
        System.out.println("Fu中method方法调用");
    }
}

package cn.tedu_1;

public class Zi extends Fu{
    /*@Override
    //私有方法不能被重写(父类私有成员子类是不能继承的)
    private void show(){
        System.out.println("Zi中show()方法被调用");
    }*/
    @Override
    public void method(){
        System.out.println("Zi中method方法调用");
    }
    /*@Override
    //子类方法访问权限不能更低(public>默认>私有)
     void method(){
        System.out.println("Zi中method方法调用");
    }*/
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不掉发的小刘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值