overload和overide的区别
overload和override的区别
1、方法名、参数、返回值相同。
2、子类方法不能缩小父类方法的访问权限。
3、子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。
4、存在于父类和子类之间。
5、方法被定义为final不能被重写。
overload(重载)
1、参数类型、个数、顺序至少有一个不相同。
2、不能重载只有返回值不同的方法名。
3、存在于父类和子类、同类中。
Java6的@override注解与Java5不同之处
首先看一下下面的示例代码 :
Parent.java
public class Parent...{ public void parentMethod() ...{ } } |
IChild.java
public interface IChild ...{ void interfaceMethod(); } |
Child.java
public class Child extends Parent implements IChild ...{ @Override public void parentMethod() ...{ } @Override public void interfaceMethod() ...{ } } |
由于代码很简单,我就不做说明
上述代码在jdk6下可以编译通过
而在jdk5下编译无法通过,输出的错误信息如下:
Child.java:7: 方法未覆盖其父类的方法
@Override
^
1 错误
上面的错误信息说在Child.java第七行的Override注解是不对的,不对的原因是该方法(interfaceMethod)不是父类方法。
当然,实际上这个方法是类实现的接口中方法,但是,这个语法的jdk6的下面是可以通过的,也就是说java6认为类覆盖父类方法与实现接口方法都叫override,而jdk5不是这样认为的,不知道这是当初jdk5的bug,还是当初就是认为覆盖父类方法与实现接口方法是不一样的,不得而知。但是从OO角度来看,覆盖父类方法与实现接口方法都可以认为override,因为他们目的都是一样的,都是为了重用,都是多态的一种表现方式。这从jdk6的支持这个功能就可以看出。
差一点忘了:
标准的java api文档java5与java6对Override annotation的的解释一样的
java5:
Indicates that a method declaration is intended to override a method declaration in a superclass. If a method is annotated with this annotation type but does not override a superclass method, compilers are required to generate an error message.
java6:
Indicates that a method declaration is intended to override a method declaration in a superclass. If a method is annotated with this annotation type but does not override a superclass method, compilers are required to generate an error message.
两段说明一模一样,让人搞不清楚的是java6文档没有提到Override对interface的支持。
overload和overide的区别相关推荐
- C++中overload,override,overwrite的区别?
C++中overload,override,overwrite的区别? Overload(重载) Override(覆盖) Overwrite(重写) Overload(重载) 在C++程序中,可以将 ...
- 类的 三大特性 封装,继承,多态 overload与override的区别
OOP三大特性:封装,继承,多态 封装的目的:为了让类更安全 封装的做法: 1.类里面的成员变量做为private 2.使用成员方法来间接访问成员变量 3.在该方法里面加限制条件 php类里面不允许出 ...
- Overload和Override的区别说明
下文笔者讲述Overload和Override的区别简介说明,如下所示: Overload:重载Override:覆盖(重写)------------------------------------- ...
- 重载Overload 和重写Override区别
重载Overload 和重写Override区别 一.含义 二.代码 1.重载OverLoad 2.重写Override 一.含义 重载OverLoad:表示同一个类中的可以有多个方法名称相同的方法, ...
- Overload和Override的区别。
Overload和Override的区别. Overloaded的方法是否可以改变返回值的类型? Overload是重载的意思,Override是覆盖的意思,也就是重写. 重载Overload表示同一 ...
- Override和Overload的含义和区别
Override和Overload的含义和区别. (1). Override 特点 (01).覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果: (02).覆盖的方法的返回值必须 ...
- Overload 和Override 的区别。Overloaded 的方法是否可以改变返回值
Overload 和Override 的区别.Overloaded 的方法是否可以改变返回值的类型? Overload 是重载的意思,Override 是覆盖的意思,也就是重写. 重载Overload ...
- OverLoad与override的区别
首先从概念上, 重载Overload:表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同). 覆盖Override:表示子类中的方法可以与父类中的某个方法的名称 ...
- Override和Overload的含义去区别
最近看了一下关于java的基础知识,对此作了一下搜集整理: java中的继承,方法覆盖(重写)override与方法的重载overload的区别 方法的重写(Overriding)和重载(Overlo ...
最新文章
- 怎么提升写代码的能力
- [TPYBoard - Micropython之会python就能做硬件 2] 利用micropython控制NOKIA 5110屏
- 【KMP】子串拆分(ybtoj KMP-4)
- 安卓学习笔记18:常用控件 - 按钮、图像视图和图像按钮
- js 实现ReplaceAll 的方法
- 2021李宏毅机器学习课程笔记——Recurrent Neural Network
- Welcome to NHibernate
- 解决Win10打开可执行文件提示为了对电脑进行保护,已经阻止此应用的问题
- 掌握这些常见的数据可视化表达方式,成为可视化达人!
- 织梦DedeCMS使用教程:留言簿模块
- 软件测试人员常用的SQL语句
- 开源操作系统期末知识总结
- vite简介,使用vite创建项目的优势
- 简单的漫画创作项目comicgen
- 物理科普读物推荐:《物理精神》——人类文明创新的原动力
- DNS域名解析成IP地址------设置主从域名服务器
- 服装生产制作型企业如何选择ERP管理系统
- 总结Windows XP实用优化技巧大放送(转)
- 《Deep Spatio-Temporal Random Fields for Efficient Video Segmentation》论文阅读
- selenium+Java鼠标悬浮操作
热门文章
- android标题栏添加按钮_2019最新Android常用开源库总结(持续更新,建议收藏)
- 【UE Sequencer系列】05-解决角色动画造成的位移问题
- SQL Server2012下载
- DELL R720系统内存指南
- SMC集装阀岛在线选型软件
- 恶补tranformer(一)--cv,在看代码,后期补
- 各文件夹的含义+单词释义+vs快捷键+sql+操作字符串+vs下载等+Mongo时差8小时
- 标准USB设备请求命令
- HUAWEI 机试题:整数表达为连续自然数之和(Python解法)
- linux jdk1.8 64位下载永久地址,ubuntu,centos,java