当前位置:首页 > 开发 > 编程语言 > Java > 正文

java override overwrite与overload

发表于: 2013-08-13   作者:bijian1013   来源:转载   浏览次数:
摘要:     Overload是重载的意思,Override是覆盖的意思,也就是重写。    重载Overload表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同)。    重写Override表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对

    Overload是重载的意思,Override是覆盖的意思,也就是重写。
    重载Overload表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同)。
    重写Override表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中的定义方法,这相 当于把父类中定义的那个完全相同的方法给覆盖了,这也是面向对象编程的多态性的一种表现。子类覆盖父类的方法时,只能比父类抛出更少的异常,或者是抛出父 类抛出的异常的子异常,因为子类可以解决父类的一些问题,不能比父类有更多的问题。子类方法的访问权限只能比父类的更大,不能更小。如果父类的方法是 private类型,那么,子类则不存在覆盖的限制,相当于子类中增加了一个全新的方法。

    多态有两种表现形式,就是重载和覆盖。

    比较说明:

    Overload:是重载的意思,这没啥能混淆的了,就是在同一个类当中,为了增加通用性,写了很多方法,这些方法只有一个要求,参数的数量和类型不同,但返回值和方法属性必须相同,否则不属于重载。重载是针对相同的一个类而言,也就是说一个类可以有很多同名不同参的方法。
    Override:有人翻译是重写,有人翻译是覆写,覆盖等。其实更像是一种扩展,因为它是在父类中声明方法(一般是抽象的),在子类中根据需求去具体定义方法的行为(即modify behavior as needed)
它要求override的方法有相同的名字、相同的参数、相同的返回值类型(即the same name, number and type of parameters, and return type)。它是一种晚绑定,是决定java多态的一种方式。
    Overwrite:java中就没有它的存在,就别以讹传讹了,java官方文档没有该词的出现,但是国外有人把overwrite解释为override。重写是针对不同的类而言,而且不同的类存在着继承关系,也就说子类可以有个和父类一样的同名同参方法。

      实例:
      Overriding, which is what I think you mean by "overwriting" is the act of providing a different implementation of a method inherited from a base type, and is basically the point of polymorphism by inheritance, i.e.

      Bicycle类:

public class Bicycle implements Vehicle {
    public void drive() { ... }
}

     Motorcycle类:

public class Motorcycle extends Bicycle {
    public void drive() {
        // Do motorcycle-specific driving here, overriding Bicycle.drive()
        // (we can still call the base method if it's useful to us here)
    }
}

java override overwrite与overload

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
java 支持方法重载,这种机制为类似功能的方法提供了统一的名称,但可根据参数行的不同而自动调用对
Overload和Override的区别?Overload的方法是否可以改变返回值的类型? Overload是重载的意思,Over
在引入别人的项目时候,@Override老是报错: 参考处理方案:转帖自http://blog.sina.com.cn/s/blog_8e9
为了是大家初步了解什么是注解(Annotation),我们先来看如下代码: 相关代码一: public class Annot
原文地址:http://www.java2000.net/p11670 测试代码 package lession10; import java.util.ArrayLi
一、什么是注释 说起注释,得先提一提什么是元数据(metadata)。所谓元数据就是数据的数据。也就是说
背景: Myeclipse中出现@Override错误,必须删除此标志,项目才可以编译通过,但是本来这个方法就是
封装 1)封装原则:将不需要对外提供的内容都隐藏起来,把属性都隐藏,提供公共方法对其访问,通常
原文地址:http://www.java2000.net/p11697 Override, 主要是因为父类的功能无法满足需求,我们又不
原文地址:http://www.java2000.net/p11697 Override, 主要是因为父类的功能无法满足需求,我们又不
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号