Java方法重写_动力节点Java学院整理

 更新时间:2017年04月17日 10:16:10   投稿:mrr  
在Java和其他一些高级面向对象的编程语言中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖,下文给大家介绍java方法重写及重写规则,一起学习吧

一、方法重写(Override)

        在Java中如何来定义重写:Java程序中类的继承特性可以产生一个子类,子类继承父类就拥有了父类的非私有的属性(方法和变量),在子类中可以增加自己的属性(方法和变量),同时也可以对父类中的方法进行扩展,以增强自己的功能,这样就称之为重写,也称为复写或者覆盖。所谓方法重写就是子类的方法和父类中继承下来的方法具有完全相同的方法名、返回值类型、方法的参数个数以及参数类型,这样才能被称为方法重写。

代码体现:

// 这是父类的定义
public class Person {
  public void eat() {
     System.out.println("=====这是父类Person的eat方法=======");
   }
}
// 这是子类的定义
public class Student extends Person {
  @Override
  public void eat() {
    System.out.println("===这是子类Student的eat方法===");
  }
  // main方法测试
  public static void main(String[] args) {
    Student student = new Student();
    student.eat(); //输出:===这是子类Student的eat方法===
   }
}

子类重写父类的方法后,在实例化子类的时候则调用的是子类中的方法,父类的方法就如同被覆盖了一样。如果在子类中需要调用父类的方法,则在子类方法中使用super关键字调用父类的方法,格式:super.父类中的方法名(参数列表)。     

       重写规则:

在进行方法重写的时候需要遵循以下规则才能实现方法重写:

(一)子类方法的参数列表必须和父类中被重写的方法的参数列表相同(参数个数和参数类型),否则只能实现方法的重载。

(二)子类方法的返回值类型必须和父类中被重写的方法返回值类型相同,否则只能实现方法重载。

(三)在Java规定,子类方法的访问权限不能比父类中被重写的方法的访问权限更小,必须大于或等于父类的访问权限。

(四)在重写的过程中,如果父类中被重写的方法抛出异常,则子类中的方法也要抛出异常。但是抛出的异常也有一定的约束--->子类不能抛出比父类更多的异常,只能抛出比父类更小的异常,或者不抛出异常。例如:父类方法抛出Exception,那么子类就只能抛出IOException或者抛出比Exception小的异常或者不抛出异常。

以上所述是小编给大家介绍的Java方法重写_动力节点Java学院整理,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Java对象转Json,关于@JSONField对象字段重命名和顺序问题

    Java对象转Json,关于@JSONField对象字段重命名和顺序问题

    这篇文章主要介绍了Java对象转Json,关于@JSONField对象字段重命名和顺序问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • 解决RabbitMq消息队列Qos Prefetch消息堵塞问题

    解决RabbitMq消息队列Qos Prefetch消息堵塞问题

    这篇文章主要为大家介绍了关于如何解决解决RabbitMq Qos Prefetch消息堵塞的问题分析,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2022-01-01
  • Spring对静态变量无法注入的解决方案

    Spring对静态变量无法注入的解决方案

    这篇文章主要介绍了使用Spring对静态变量无法注入的解决方案,具有很好的参考价值,希望对大家有所帮助。
    2021-07-07
  • idea如何自动添加版权许可证信息

    idea如何自动添加版权许可证信息

    这篇文章主要介绍了idea如何自动添加版权许可证信息问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Java的stream流多个字段排序的实现

    Java的stream流多个字段排序的实现

    本文主要介绍了Java的stream流多个字段排序的实现,主要是两种方法,第一种是固定多个字段排序和第二种动态字段进行排序,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • Java使用数组实现ArrayList的动态扩容的方法

    Java使用数组实现ArrayList的动态扩容的方法

    这篇文章主要介绍了Java使用数组实现ArrayList的动态扩容的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Java中初始化List集合的6种方式详解

    Java中初始化List集合的6种方式详解

    这篇文章主要介绍了Java中初始化List集合的6种方式详解,List 是 Java 开发中经常会使用的集合,在使用List时需要进行初始化操作,今天我们就来看一下常用的几种list集合初始化方式,需要的朋友可以参考下
    2023-10-10
  • Java数据类型的规则

    Java数据类型的规则

    这篇文章主要介绍了Java数据类型的规则的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-12-12
  • Springboot项目全局异常统一处理案例代码

    Springboot项目全局异常统一处理案例代码

    最近在做项目时需要对异常进行全局统一处理,主要是一些分类入库以及记录日志等,因为项目是基于Springboot的,所以去网络上找了一些博客文档,然后再结合项目本身的一些特殊需求做了些许改造,现在记录下来便于以后查看
    2023-01-01
  • Java实现的日期处理类完整实例

    Java实现的日期处理类完整实例

    这篇文章主要介绍了Java实现的日期处理类,结合完整实例形式分析了Java针对日期的获取、运算、转换等相关操作技巧,需要的朋友可以参考下
    2017-09-09

最新评论