@Override

这篇博客探讨了Java中的@Override注解的作用。它主要用于表明子类方法是对父类方法的重写,提高代码可读性。同时,@Override还提供了一种编译时检查,确保所重写的方法确实存在于父类中,避免因拼写错误导致的意外行为。通过实例展示了如何在子类Cat和Fish中正确使用@Override来重写Animal类的方法。
摘要由CSDN通过智能技术生成

@Override这个标签有什么用呢。。。。。。


其实我也是比较迷茫,查了一下,三个作用吧


1. 可以给你当作注释用,感觉这个也不能说明什么,注释也没什么用。


2. 可以告诉读你代码的人,这是对它父类方法的重写,其实很多代码规范没有为什么,规范就是规范,代码的可读性还是很重要的。


3. 编译器可以给你验证@Override下面的方法名称是否是你父类中所有的,如果没有就会报错。

public class Animal {
    String name;
    boolean sound;
    String color;

    public Animal() {
        this.name="怪物";
        this.sound=true;
        this.color="黑色";
    }

    public Animal(String name, boolean sound, String color) {
        this.name = name;
        this.sound = sound;
        this.color = color;
    }

    public void eatFood(){
        System.out.println("我是一个动物,我什么都吃!!!");
    }
    public void showAnimal(){
        String str=sound?"会叫":"不会叫";
        System.out.println("这是一只"+color+"的"+name+",它"+str);
    }
}
class Cat extends Animal{
    public Cat() {
        this.name="波斯猫";
        this.sound=true;
        this.color="白色";
    }

    public Cat(String name, boolean sound, String color) {
        super(name, sound, color);
    }

    @Override
    public void eatFood() {
        System.out.println("猫应该吃的食物!!!");
    }
}
class Fish extends Animal{
    public Fish() {
        this.name="金鱼";
        this.sound=false;
        this.color="红色";
    }

    public Fish(String name, boolean sound, String color) {
        super(name, sound, color);
    }
    @Override
    public void eatFood() {
        System.out.println("鸟类应该吃的食物!!!");
    }
}

比如当你想要在子类中重写父类的一个方法,但是你把名字打错了,当你写了@Override编译器会

提示你,你写的这个方法父类中没有;但是如果你没有写@Override编译器就会

觉得这个是你子类中写的新的方法,并不会报错,到时候你debug还是很麻烦的一件事。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

结果才重要

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

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

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

打赏作者

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

抵扣说明:

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

余额充值