`
chen1984
  • 浏览: 6751 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论
  • edr_: 改变重载方法的返回类型不是相当于自身创建一个新的方法吗?我看教 ...
    重载和重写

重载和重写

 
阅读更多
老话重提,又是重载和重写的区别等的概念性问题,记录下,以后万一需要,直接查看。

重载(Overload)
每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。
只能重载构造函数
规则
  • 被重载的方法必须改变参数列表;

  • 被重载的方法可以改变返回类型;

  • 被重载的方法可以改变访问修饰符;

  • 被重载的方法可以声明新的或更广的检查异常;

  • 方法能够在同一个类中或者在一个子类中被重载。

重写(Override)
能够在需要新的子类特有行为时重新在子类中定义方法。
规则
  • 参数列表必须完全与被重写方法的相同;

  • 返回类型必须完全与被重写方法的返回类型相同;

  • 访问级别的限制性一定不能比被重写方法的

  • 访问级别的限制性可以比被重写方法的弱;

  • 重写方法一定不能抛出新的检查异常或比被重写的方法声明的检查异常更广泛的检查异常

  • 重写的方法能够抛出更少或更有限的异常(也就是说,被重写的方法声明了异常,但重写的方法可以什么也不声明)

  • 不能重写被标示为final的方法

  • 如果不能继承一个方法,则不能重写这个方法。


区别:
区别点           重载方法                     重写方法
参数列表         必须修改                   一定不能修改
返回类型         可以修改                   一定不能修改
异常             可以修改        可以减少或删除,一定不能抛出新的或者更广的异常
访问             可以修改             一定不能做更养个的限制(可以降低限制)

调用
重载方法:
参数类型决定选择哪个重载版本(根据声明的参数类型),这发生在编译时。被调用的实际方法仍是发生在运行时期的虚拟方法调用。但是编译器已经知道所调用的方法的签名。因此,在运行时期,参数匹配已经明确,只是还不知道该方法所在的实际类。
重写方法:
对象类型(即:堆上实际实例的类型决定调用选择哪个方法,这发生在运行时期)
分享到:
评论
1 楼 edr_ 2012-08-24  
改变重载方法的返回类型不是相当于自身创建一个新的方法吗?我看教程的时候记得听过这种说法?

相关推荐

    java中的重载和重写的区别

    Java中的重载(Overloading)和重写(Overriding)是面向对象编程中两个重要的概念,它们体现了Java的多态性。多态性是面向对象编程的三大特性之一,另外两个是封装和继承。 首先,让我们详细解释一下方法的重载。重载...

    Java中重载和重写总结

    Java 中重载和重写总结 Java 中的重载(Overloading)和重写(Overriding)是两个非常重要的概念,它们都是多态性的体现形式。 一、Java 中的重载(Overloading) Java 中的重载是指在同一个类中可以创建多个...

    继承与多态,重载和重写

    总结起来,继承、多态、重载和重写是面向对象编程中的核心概念,它们相互关联,共同构建出灵活、可扩展的代码结构。通过继承,我们可以构建类的层次结构,多态则提供了代码的通用性和灵活性。而重载和重写则是实现...

    Java的重载和重写

    Java编程语言中的重载(Overloading)和重写(Overriding)是两个关键的概念,它们都是多态性的重要体现,但各自有着不同的含义和规则。 首先,我们来详细了解一下方法的重载。重载,简单来说,就是在一个类中定义多个...

    java 函数的重载和重写实例代码

    在Java中,函数的重载(Overloading)和重写(Overriding)是多态性的重要表现形式,它们都是实现面向对象设计原则的关键手段。 1. 重载(Overloading): 重载发生在同一个类中,它允许我们创建多个同名的方法,...

    重载和重写--java

    重载和重写--java

    Java重载和重写的区别--源码实例

    Java中的重载(Overloading)和重写(Overriding)是面向对象编程中的两种关键特性,它们涉及到方法的多态性。理解这两者的区别对于编写高效、可维护的代码至关重要。 **重载(Overloading)**是指在一个类中,可以有多个...

    方法重载和方法重写

    在编程语言中,方法重载(Overloading)和方法重写(Overriding)是两个非常重要的概念,它们都是实现多态性(Polymorphism)的关键机制。本文将深入探讨这两个概念,以及它们在实际编程中的应用。 ### 方法重载...

    Beatles9527#StudyNotes#_12从虚拟机的角度理解重载和重写1

    从虚拟机的角度理解重载和重写说明:本文主要内容都参考至《深入Java虚拟机-周志明著》Class文件的编译过程中不包含传统程序语言编译的连接步骤,一切方法的调用

    重载与覆写/重写的区别

    重写和被重写方法返回值必须相同 * 此方法错误 */ // public double getSides() { // return 3d; // } // end // begin /** * 4. 重写方法抛出的异常必须和被重写方法抛出异常一致,或者是其子类 * 详细见:...

    java面向对象重载和重写

    面向对象是Java编程的核心概念,其中“重载”(Overloading)和“重写”(Overriding)是两个至关重要的概念。理解并熟练运用这两个概念,对于提升Java编程能力至关重要。 首先,我们来探讨“重载”。在Java中,...

    方法的重载和重写1

    在编程语言中,方法的重载(Overloading)和重写(Overriding)是两种不同的多态性表现,它们在类的继承体系中扮演着重要角色。本文将深入探讨这两种概念,以及它们在实际编程中的应用和规则。 首先,我们来看方法...

    Objective-C中的重载和重写详解

    重载、重写和隐藏三者在编程语言中的定义 重载(overload):函数名相同,函数的参数列表不同(包括参数个数和参数类型),至于返回类型可同可不同。重载既可以发生在同一个类的不同函数之间,也可发生在父类子类的...

    C++中重载与重写函数区别及虚函数

    ### C++中重载与重写函数的区别及虚函数详解...- **虚函数**:用于支持重写和多态性的关键。 通过以上分析可以看出,虚函数、重载和重写在C++中的应用各有侧重,合理利用这些特性可以极大地提高程序的灵活性和扩展性。

    Java方法的艺术:重载与重写的深度解析

    在 Java 编程语言中,方法的重载(Overloading)和重写(Overriding)是面向对象编程的重要概念。这两种技术使得方法能够在不同的上下文中表现出不同的行为,从而增强了代码的灵活性和可读性。下面将深入探讨 Java ...

    重载和重写的区别.emmx

    使用mindmaster打开

    linancc#JavaNotebook#重载和重写1

    声明为static的方法不能被重写,但是能够被再次声明。子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为private和final的方法。子类和

Global site tag (gtag.js) - Google Analytics