Java覆写Override

/*
* 覆写:覆盖/重写/覆写
*   覆写特指成员方法,通过覆写实现特有的功能
*   子类有自己的特有属性
*   可以覆写父类的成员方法
* 应用场景
*   1 什么时候需要重写
*       如果父类无法满足子类需求,需将父类中的方法重写
*   2 重写条件
*       1 必须具有继承关系
*       2 方法名必须相同,返回值必须相同,参数列表必须相同
*       3 不能比原方法具有更宽泛的异常
*       4 不能比原方法具有更低的访问权限
*       5 特指成员方法
*       6 被覆盖方法不能为private
* 作用:代码重用
* 功能:方法可以覆写,多态(动态性)
* 目的:
*   1 满足当前需求,方法体编码
*   2 错误减少,不能有更宽泛的异常
*   3 使用范围越来越广,不能有更低的访问权限
*   4 功能增强
*
* Overload和Override区别
*   1 分别是什么 分别是方法重载与方法覆写,
*       Overload中方法名相同,参数列表不同(参数个数、参数类型、参数顺序),可以改变返回值类型
*           重载在编译阶段可以根据规则知道调用哪个方法,故重载又称为静态绑定(printf函数)
*       Override中方法名、返回值和参数列表必须相同,不能有更高的异常,不能有更低的访问权限
*           实例:接口中所有声明方法的重写
*   2 分别干什么
*       Overload方法名相同,功能不同,解决命名问题,
*       Override主要是代码的重用和功能的扩展,不能满足时候在扩展
*   3 区别
*       Overload在同一个类中也可以实现,比如构造器的重载,在同一个类中实现。同类中多态性的表现
*       Override必须具有继承关系,只能针对非静态、非final、非构造方法。父类与子类多态性的表现
*           如果想在子类覆写的方法中调用父类方法,可以使用super关键字。
* */
public class _01_Override {
    public static void main(String[] args) {
        Cat cat = new Cat();
        cat.run();
        cat.eat();
    }
}

class Animal{
    public void run(){
        System.out.println("动物在跑");
    }
    public void eat(){
        System.out.println("吃");
    }
}

class Cat extends Animal{
    // 覆写父类的方法
    public void run(){
        System.out.println("猫在快跑");
    }

    @Override
    public void eat() {
        System.out.println("猫吃东西");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值