Overload&Override

Overload&Override

overload—–重载

方法的重载就是在一个类中,可以定义多个有相同名字,但参数不同的方法。调用时,会根据不同的参数表选择对应的方法。

规    则:两同三不同
两    同:同一个类、同一方法名
三 不 同:参数类型、参数个数、参数排列顺序不同

注:参数名称不同、参数返回值不同无法构成方法的重载。如果只有方法参数名称不同或者方法返回值不同,在你调用方法时你输入的实参会在参数列表中对应多个方法,无法使编译器知道你到底调用的是哪个方法。

代码说明如下:

注释:java中允许任何方法重载,包括构造方法。因此,要完整的描述一个方法,需要指出方法名以及参数类型,这个叫做方法的签名(signature)。

Override-----重写

在子类中根据需要对从父类中继承来的方法进行修改,这叫做方法的重写,也称为方法的覆盖。重写方法只能存在于具有继承的关系中。

注意事项:

(1) 子类不能重写父类中被关键字final修饰的方法(包括private方法,因为private方法是隐式final的)。

(2)  重写方法必须与被重写方法具有相同的方法名称、参数列表和返回值类型。

(3) 重写方法不能使用比被重写方法更严格的访问权限(由于多态的存在)。重载可以。

(4) 重写方法不能抛出新的异常或者比被重写方法申明更加宽泛的检查性异常,可以抛出非检查型异常。如:父类的一个方法申明了一个检查异常IOException,在重写这个方法的时候,重写方法不能抛出Exception,只能抛出IOException或其子类异常,也可以抛出非检查型异常。重载可以抛出不同的异常。

方法的重载与方法的重写没关系!

原文地址:https://www.cnblogs.com/STDBK/p/8350754.html

时间: 2024-08-15 10:05:31

Overload&Override的相关文章

C++中overload,override,overwrite的区别详细解析

以下是对C++中overload,override,overwrite的区别进行了详细的分析介绍,需要的朋友可以过来参考下 Overload(重载):在C++程序中,可以将语义.功能相似的几个函数用同一个名字表示,但参数或返回值不同(包括类型.顺序不同),即函数重载.(1)相同的范围(在同一个类中):(2)函数名字相同:(3)参数不同:(4)virtual 关键字可有可无. Override(覆盖):是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类):(2)函数名字相同

关于 C++ 几个术语的简析--overload, override, overwrite, rewrite

overload, override, overwrite, rewrite 这几个单词经常出现在 C++ 书中,翻阅一些译版后发现并未对 override, overwrite, rewrite 严格区分,大都翻译成重写.其实查阅英文原版会发现,不同的上下文用不同的单词描述.以下逐个分析: ? overload 重载 对于这个翻译,暂时没有异议,也许正是由于 overload 翻译成重载,导致把 override 直接翻译成重写. ? override 覆盖 很多译版翻译成重写.本人觉得这样翻

c/c++:重载 覆盖 隐藏 overload override overwrite

http://www.cnblogs.com/qlee/archive/2011/07/04/2097055.html 成员函数的重载.覆盖与隐藏成员函数的重载.覆盖(override)与隐藏很容易混淆,C++程序员必须要搞清楚概念,否则错误将防不胜防.8.2.1 重载与覆盖成员函数被重载的特征:(1)相同的范围(在同一个类中):(2)函数名字相同:(3)参数不同:(4)virtual 关键字可有可无.覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类):(2)函数名

JAVA中继承时方法的重载(overload)与重写/覆写(override)

JAVA继承时方法的重载(overload)与重写/覆写(override) 重载-Override 函数的方法参数个数或类型不一致,称为方法的重载. 从含义上说,只要求参数的个数或参数的类型不一致就说两个函数是重载函数,而至于返回值是否一样,没关系.同时,重载可以发生在同一个类中也可以发生在继承关系中. class A { } class B extends A { public void fun(String data1) { System.out.println(data1); } pub

delphi override、overload、reintroduce的区别-0613.txt

http://blog.csdn.net/honglixx/article/details/3624934 1.override overload reintroduce的中文叫法是什么? override:覆盖:overload:重载:Reintroduce:重定义 2.在子类中override或overload父类中的动态或虚拟方法后是否会改变父类中的相应方法? 不会 3.self是怎么回事,怎么使用? Self因为这这个对象本身,例如,在TForm1的OnCreate事件中写Self指的是

第6篇-JAVA面向对象Ⅱ

第6篇-JAVA面向对象Ⅱ 每篇一句 :敢于向黑暗宣战的人,心中必定充满光明 初学心得: 面向对象 春暖花开 (笔者:JEEP/711)[JAVA笔记 | 时间:2017-04-05| JAVA面向对象 Ⅱ] 1.JAVA面向对象三大特征 1.封装(Encapsulation); 2.继承(Inheritance); 3.多态(Polymorphism) 2.面向对象 之 封装 什么是封装? 封装就是隐藏实现细节,仅对外提供访问接口 封装的类型有:属性封装.方法封装.类封装.组件封装.模块化封装

Delphi中的关键字与保留字

Delphi中的关键字与保留字 分类整理 Delphi 中的“关键字”和“保留字”,方便查询 感谢原作者的收集整理! 关键字和保留字的区别在于,关键字不推荐作标示符(编译器已经内置相关函数或者留给保留实现),二保留字是根本不可能作标示符(编译时有警示!) [系统保留字] and            array          as             asm begin          case           class          const constructor   

Java从小白到入门,Day8,JAVAOO-多态

多态:就是指一类对象都是相同的行为,但其表现不同,称之为多态. 比如动物都有叫,狗叫与猫叫就不同: 多态就是相同的行为,不同的实现.也就是“一个接口,多种实现”.多态就是抽象化的一种体现,把一系列具体事物的共同点抽象出来, 再通过不同的具体事物继承这个抽象事物,来实现重写抽象事物的方法. 多态:子类型可以直接给父类型赋值,当执行父类型的方法时,会运行期真实类型的方法:或,一类事物有共同的行为,但拥有不同的行为实现,可以将这些事物看做是一类事物,而不需要关系其具体的实现过程. 多态的作用:1. 应

基础知识——java 类的继承、重载与重写

继承 一.extends关键字来表示继承关系.当创建一个类时,总是在继承,如果没有明确指出要继承的类,就总是隐式地从根类Object进行继承: 二.子类继承父类的成员变量 1)能够继承父类的public和protected成员变量:不能够继承父类的private成员变量: 2)对于父类的包访问权限成员变量,如果子类和父类在同一个包下,则子类能够继承:否则,子类不能够继承: 3)对于子类可以继承的父类成员变量,如果在子类中出现了同名称的成员变量,则会发生隐藏现象,即子类的成员变量会屏蔽掉父类的同名