美文网首页
Java重写和重载的区别

Java重写和重载的区别

作者: StrongZhao | 来源:发表于2016-11-09 23:09 被阅读89次

** 重写(overriding)特点**

  1. 父类与子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。
    但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。
  2. 若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。
    如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类。
  3. 子类方法的访问修饰权限不能少于父类的方法访问修饰权限。

** 重载(overloading)特点 **

  1. 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载Overloading是一个类中多态性的一种表现。
  2. Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性。
  3. 重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准。

重写方法的规则

  1. 参数列表必须完全与被重写的方法相同,否则不能称其为重写而是重载。
  2. 返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写而是重载。
  3. 访问修饰符的限制一定要大于被重写方法的访问修饰,子类只能重写父类非私有化的方法

重载的规则:

  1. 必须具有不同的参数列表
  2. 可以有不同的返回类型
  3. 可以有不同的访问修饰符;

总结
   多态性是面向对象编程的一种特性,和方法无关,简单说,就是同样的一个方法能够根据输入数据的不同,做出不同的处理,即方法的重载——有不同的参数列表(静态多态性)。
   而当子类继承自父类的相同方法,输入数据一样,但要做出有别于父类的响应时,你就要覆盖父类方法,即在子类中重写该方法——相同参数,不同实现(动态多态性)。

相关文章

  • 方法重载与方法重写(@Overload @Override)

    java方法重载和方法重写(方法覆盖)的区别: 方法重载: Overload 方法重写: Override 批判,...

  • 5.Java重载和重写的区别

    Java 方法重载和方法重写的区别有哪些? 解析:先明白重载和重写的定义。 一、方法重写(0verride) 在J...

  • 跳槽字节跳动社招Java面试分享

    Java基础 1、重载和重写的区别。 2、String 和 StringBuffer、StringBuilder ...

  • Java中重载和覆盖(重写)的区别

    Java中重载和覆盖(重写)的区别 1,基本概念 重载(Overload) Java中的方法重载发生在同一个类里面...

  • 02.Java面向对象问题

    目录介绍 2.0.0.1 重载和重写的区别?重载和重写绑定机制有何区别?父类的静态方法能否被子类重写? 2.0.0...

  • JAVA基础之重写和重载

    重写和重载详细区分: Java 重写(Override)与重载(Overload) | 菜鸟教程 核心区分:重写(...

  • Java重写和重载的区别

    首先说一下什么是重载(Overload):(1) 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函...

  • Java重载和重写的区别

    重写规则:1、参数列表必须完全与被重写的方法相同,否则不能称其为重写而是重载。2、返回的类型必须一直与被重写的方法...

  • Java重写和重载的区别

    ** 重写(overriding)特点** 父类与子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某方...

  • JAVA重写和重载的区别

    问: Java 重载与重写是什么?有什么区别? 答: 重载(Overload)是让类以统一的方式处理不同类型数据的...

网友评论

      本文标题:Java重写和重载的区别

      本文链接:https://www.haomeiwen.com/subject/nemtpttx.html