java重写(@Override)介绍及实例说明

这篇具有很好参考价值的文章主要介绍了java重写(@Override)介绍及实例说明。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.概述

方法的重写(override)是封装的特性之一。在子类中可以根据需要对基类中继承来的方法进行重写。重载和重写没有任何关系。

作用:通过重写,子类既可以继承父类的东西,又可以灵活的扩充。

1.@override注解是告诉编译器,下面的方法是重写父类的方法

2.编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错。例如,你如果没写@Override,而你下面的方法名又写错了,这时你的编译器是可以编译通过的,因为编译器以为这个方法是你的子类中自己增加的方法。

3.如果不写@override注解去直接重写方法,编译器是不会判断你是不是正确重写了父类中的方法的。如重写方法时参数与父类不同,程序是不会提示报错的。这会留下一个潜在的bug。当你写了@override注解时,程序会判断你是否正确的重写了父类的对应方法。而且加上此注解后,程序会自动屏蔽父类的方法。

2.特点

  • 在子类中可以根据需要对基类中继承来的方法进行重写。

  • 重写方法必须和被重写方法具有相同方法名称、参数列表和返回值类型

  • 重写方法不能使用比被重写方法更严格的访问权限。(由于多态)

3.实例说明

代码如下:

public class Animal {
    String name;

    void eat() {
        System.out.println("have a good dinner");
    }

    public static void main(String[] args) {
        Birds b = new Birds();
        b.eat();
    }
}

class Birds extends Animal {
    @Override
    void eat() {
        super.eat(); // 调用父类的方法
        System.out.println("----------------------------------------"); // 分隔线
        System.out.println("jiujiujiu");
    }

    void fly() {
        System.out.println("Yeah,I can fly~~");
    }
}

代码说明:

鸟类Birds在eat的时候,需要输出jiujiujiu。可通过重写父类Animal中的eat()方法实现。

通过Bird实例调用eat()方法时,是调用重写后的方法。

之前的父类的方法呢?其实还存在,可以在子类中通过super进行调用。

运行结果:文章来源地址https://www.toymoban.com/news/detail-773697.html

have a good dinner
----------------------------------------
jiujiujiu

到了这里,关于java重写(@Override)介绍及实例说明的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java注解——@Override注解(详解1)

    1、注解: 注解是 JDK 1.5 的特性 注解是给编译器或 JVM 看的,编译器或 JVM 可以根据注解来完成相应的功能。 或者叫注释类型,英文是:Annotation 注解Annotation是一种引用数据类型。编译之后也是生成xxx.class文件。 注解的语法格式: 【修饰符列表】 @interface 注解类型名{ } publ

    2024年02月03日
    浏览(46)
  • 详解@Override注解

    目录 1.是什么 2.为什么用 3.举例说明 1)示例一 2)示例二 3)示例三 @Override注解是伪代码,用于表示被标注的方法是一个重写方法。 @Override注解,只能用于标记方法,并且它只在编译期生效,不会保留在class文件中。 @Override 检查该方法是否是重写方法。如果发现其父类,或

    2024年02月14日
    浏览(36)
  • c#多态(override)的使用

    方法重写(override):多态,通过父类类型对象,调用子类当中对应方法的实现。 细节:子类当中的override方法会“抹杀”父类当中对应virtual方法 不使用多态时,父类调用子类方法时,会调用父类的方法 main方法通过里氏替换调用子类shout方法 那如何可以,通过父类调用子类的

    2024年02月10日
    浏览(56)
  • 前端本地覆盖资源(local override)调试

    Chrome 65 中的开发者工具将包含以下新功能: 本地替换 新的无障碍工具 更改标签页 新的搜索引擎优化 (SEO) 和性能审核 Performance 面板中的多个录制内容 使用 worker 和异步代码执行可靠的代码单步调试 本篇文章主要学习与实践下本地替换这个功能 提示:以下是本篇文章正文内

    2024年01月16日
    浏览(37)
  • 【unity实践记录】动画层的顺序和混合模式Override/Additive

    手册上关于 层顺序 的介绍基本没有,只是一个不明所以的QA一带而过: 层的排序是否重要? 是的。层的优先级是按顺序从上到下的。层设置为  override  将始终覆盖先前的层(如果层有遮罩,则基于其遮罩)。 基础层的权重值是否应始终设置为 1?或者在使用其他层时权重

    2024年02月04日
    浏览(36)
  • C++面试八股文:override和finial关键字有什么作用?

    某日二师兄参加XXX科技公司的C++工程师开发岗位第22面: (二师兄好苦逼,节假日还在面试。。。) 面试官:C++的继承了解吗? 二师兄:(不好意思,你面到我的强项了。。)了解一些。 面试官:什么是虚函数,为什么需要虚函数? 二师兄:虚函数允许在基类中定义一个函

    2024年02月10日
    浏览(39)
  • 报错:v-html will override element children 解决方法

    原因: v-html 标签内还有内容 解决方法:删除标签内的内容,如下

    2024年02月13日
    浏览(40)
  • C#---第二十:不同类型方法的执行顺序(new / virtual / common / override)

    本文介绍不同类型的方法,在代码中的执行顺序问题: 构造方法 普通方法(暂用common代替)、虚方法(Virtual修饰)、New方法(new修饰)三个优先级相同 overide方法(会替换virtual方法,此时virtual方法被隐藏,无法再调用到) 当父类、子类中的方法都是new/common/virtual/这三类的

    2024年02月10日
    浏览(33)
  • E45: ‘readonly‘ option is set (add ! to override)解决办法

    该错误为当前用户没有权限对文件作修改 一、解决办法: 当前用户没有权限对文件作修改,你有权限修改文件吗?如果是root权限,可以:wq! 强行保存退出; 该文件没有正确保存退出,正在打开状态,请别人关闭后再保存; 若该文件所有人都关闭了,提示有的人没有关闭,则

    2024年02月04日
    浏览(42)
  • 【C++】C++11-类的新功能&default&delete&final&override关键字

    一个类有多少个默认成员函数? c++98:6个 C++11:8个 在C++98中,一个类中有如下六个默认成员函数:构造函数,析构函数,拷贝构造函数,拷贝赋值函数,取地址重载函数,const取地址重载函数,其中前四个成员函数最重要.后面两个成员函数一般不会用到 其中这里“默认”的意思就是 你不

    2024年02月02日
    浏览(88)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包