java方法重写

一、什么是方法重写
方法重写(Method Overriding)是面向对象编程中的一个重要概念,它允许子类重新定义(覆**盖)从其父类继承的方法。当子类中定义了一个与父类中具有相同名称、参数列表和返回类型的方法时,就称为方法重写。

二、为什么要方法重写
当父类的方法满足不了子类的需求的时候,需要在子类中对该方法进行重写

三、方法重写的基本语法:

@Override
权限修饰符 返回值类型 方法名(形参列表){
    //子类重写的方法的权限修饰符的访问权限必须大于等于父类的,但是父类不能是private
    //当父类的返回值类型为基本数据类型或者为void时,子类方法的返回值类型也应该为对应的基本数据类型或者void
   
}

代码实现:

package com.java.extend;

public class Person {             //父类
    public void talk(String msg){//成员方法
        System.out.println("父类说:" + msg);
    }
}
package com.java.extend;

public class Student extends Person{            //Person类的子类
    //两个成员方法
    public void talk(String msg) {     //覆写父类Person的成员方法talk()
        System.out.println("子类说:" + msg);
    }
    public void show(String info){
        talk(info);//调用子类自身的成员方法
        super.talk(info);//调用父类中被子类覆盖的成员方法talk()
    }
}
package com.java;

import com.java.extend.Student;

public class Demo007 {
    public static void main(String[] args) {
        Student stu = new Student();
        stu.talk("勤能补拙!"); //调用Student对象的方法
        stu.show("骄而不傲!");
    }
}

成果展示
在这里插入图片描述
补充:
为什么使用@Override?
当你在一个方法前面加上@Override注解时,编译器会检查该方法的签名(方法名、参数列表、返回类型)是否和父类或接口中的某个方法一致。如果不一致,编译器会报错,提示你有可能错误地重写了方法,或者是没有重写父类或接口中的方法。

注意事项:

1.子类的覆写方法必须与父类的被覆写方法具有相同的名称、返回类型和参数列表。

2.子类重写的方法的访问权限应该大于等于父类方法的访问权限例如,如果父类的方法是public,则子类中覆写的方法也必须是public。

3.子类方法不能抛出比父类方法声明更大的异常。

4.通过在子类中编写与父类中同名方法且满足上述规则的方法,就可以实现方法覆写。这样,在调用该方法时,将会执行子类中的方法而不是父类中的方法。

5.被final修饰不能被重写

6.当父类的方法被static修饰的时候,子类是不能重写该方法的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值