java方法的重载与覆盖的返回值类型

public class A extends B{//下面的是方法的覆盖(重写overRiding)public void riding(){System.out.println("this is  overRiding ");}//下面两个函数是方法的重载(overLoading),但是返回值类型不同,可以运行public String loading(int x){System.out.println("this is overLoading return String");return null;}public int loading(int x,int y){System.out.println("this is overLoading return int");return 0;}public static void main(String[] args) {A a = new A();a.riding();a.loading(2);a.loading(2,3);}
}class B{public void riding(){System.out.println("this is B");}
}


下面是运行结果:

this is  overRiding 
this is overLoading return String
this is overLoading return int

有以上程序可以知道,方法的重载是可以改变返回值类型的,但是尚不能说明方法的覆盖是否可以改变返回值类型,现在修改A类中 riding()方法的返回值类型为int,

public int riding(){
System.out.println("this is  overRiding ");
}

此时会有如下的错误:


由此可知,方法的覆盖是不允许修改返回值类型的。

以上测试程序运行在JDK1.5版本。

我对此的解释为:

方法的重载是根据函数的参数列表来决定的,即:参数列表的个数,类型,顺序三个方面;

对于其返回值类型,就是改变了也不会有影响,因为你不可能写成参数类表相同(个数,类型,顺序)的方法重载,因为那根不就不是重载。所以返回值类型也就不能作为程序运行时选择函数的一个标准,因此返回值类型也就没了对函数选择时的影响。

方法的覆盖不仅根据函数的参数列表还要根据返回值类型,因为覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果;

覆盖时还有“类型的提升”这一点,具体可以参考

http://topic.csdn.net/u/20110318/16/0acfac41-4ce4-4a1e-b3e3-9b4af265c691.html

总结如下:

方法覆盖必须满足下列条件

(1) 子类的方法的名称及参数必须和所覆盖的方法相同

(2) 子类的方法返回类型必须和所覆盖的方法相同

重载方法必须满足下列条件

(1) 方法名必须相同

(2) 方法的参数签名必须相同

(3) 方法的返回类型和方法的修饰符可以不相同




本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/553537.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

edge浏览器设置兼容模式怎么设置

edge浏览器在win10系统中默认使用,整体来说还算是个不错的浏览器,跟微软账户关联,所以使用的人还挺多。但是对于edge浏览器来说,很多网页都需要使用兼容模式进行打开,这里小编就给大家分享下edge浏览器兼容模式设置的方…

threejs 局部辉光

首先看一下局部辉光的效果。 困扰很久的问题,终于解决了!!! 具体找到解决的方法是看了这里和这里2。也是看了这两个帖子之后才找到解决方法。 这种辉光效果也是用后期处理方法,大家可以先看官网上的这个例子。 rend…

谷歌浏览器截图快捷键是什么?谷歌浏览器截图操作方法介绍

谷歌浏览器的截图方法谷歌浏览器没有自带的截图功能,我们需要下载相关的扩展功能和插件。 方法一、快捷键截图 1、找到键盘按键“Print Screen”按下即可全屏截图。 谷歌浏览器截图快捷键是什么?谷歌浏览器截图操作方法介绍 方法二、软件自带截图功能…

Uncaught (in promise) DOMException 报错

最近在项目里面加入视频自动播放&#xff0c;有时候会报错(RT)&#xff0c;不能自动播放。 <videoid"videoPlayer"v-show"!isNormalCamera"class"preview-video"name"media"controls"controls"autoplay"autoplay&q…

static,构造器,执行顺序

//静态代码块(加载类的时候执行)-->非静态代码块(执行构造器之前执行)-->然后是构造器//......

Win7系统默认浏览器的更改教程

Win7的默认浏览器一般是ie浏览器&#xff0c;但是我们经常会下载使用其它的浏览器&#xff0c;这时候我们就需要更改默认浏览器。那么应该如何更改默认浏览器呢?下面就和小编一起来看看Win7系统默认浏览器的更改教程吧 Win7系统默认浏览器的更改教程 1、首先在开始菜单中打开…

threejs 判断对象是否在可视区内

在threejs 中判断一个对象&#xff08;vector坐标&#xff09;是否在相机的可视区内 let tempV vector.applyMatrix4(camera.matrixWorldInverse).applyMatrix4(camera.projectionMatrix);if ( (Math.abs(tempV.x) > 1) || (Math.abs(tempV.y) > 1) || (Math.abs(tempV.…

求质数

public class Demo2 {//求质数public static void main(String[] args) {for (int i 2; i < 100; i) {int j ;//1 和其本身的数 就不用除了 只要看其他的数可以除进吗如果能除进就不是质数 要跳出去不能打印这个数 这个数不是质数for (j 2; j < i; j)if (i % j 0)bre…

IE浏览器高级设置如何还原

在使用浏览器的时候&#xff0c;可能会给浏览器更换字体、换上自己喜欢的皮肤等等&#xff0c;但是看久了还是想恢复成高级设置&#xff0c;那具体要怎么操作呢?下面小编就给大家详细地介绍一下吧&#xff0c;希望可以帮到你! 步骤如下&#xff1a; 1、进入控制面板&#xf…

threejs 用 ExtrudeGeometry 画管线

首先说一下ExtrudeGeometry ,可以先看官网,这个方法的意思是沿着给定的路径拉伸一个平面图形&#xff0c;然后就成为3D图形了。 所以很明显这个方法要两个参数&#xff0c;路径和图形。 然后接下来说管线的问题。 var radius data[i][Diameter] - 0; // 管子的半径 var sha…

java问题,(x.equals(y) == true)有相同的hashCode 应该是不一定

这个问题在equals没有被重写的情况下是成立 的,如果说x,y是String类型的是没有问题 虽然String类型重写了equals方法但是String比较的是只是字符串值, 对于对象就不一定了 如果没有重写 这个x,y有相同的hashCode 但是如果被重写了equals方法就不一定了,为什么这么说呢,如果我们…

windows7系统取消护眼模式的方法

护眼模式可以让用户更好的保护眼睛&#xff0c;但是因为色调的关系&#xff0c;可能会导致某些软件显示图像出现问题&#xff0c;所以很多用户还是会选择取消这个护眼模式&#xff0c;具体要怎么取消呢&#xff0c;来看下详细的关闭方法吧。 windows7系统取消护眼模式的方法 …

RTMP 在浏览器端播放

RTSP、RTMP 也有很多在说的。然而我就是总结下我最近在使用RTMP的理解。 首先说一下RTMP协议的定义, 实时消息协议&#xff08;英语&#xff1a;Real-Time Messaging Protocol&#xff0c;缩写RTMP&#xff09;也称实时消息传输协议&#xff0c;是最初由Macromedia为通过互联网…

自定义spring配置文件位置

spring配置文件 springtest.xml 转移位置 看web.xml配置文件位置 <!-- springMVC 配置 --><servlet><servlet-name>springMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!--…

Windows11怎么关机重启?Windows11的关机键在哪?

最近&#xff0c;随着Windows11的系统镜像流出&#xff0c;不少小伙伴都已经抢先下载体验了。而针对这一次Windows的界面大改&#xff0c;许多用户不知道一些基础的功能在哪&#xff0c;例如关机键。下面小编就为大家详细讲解一下怎么关机吧! 操作方法&#xff1a; 1、首先我…

springMVC问题XXX is not mapped [from XX]或者Unknown entity: com.spring.main.pojo.Person

springMVC问题XXX is not mapped [from XX]或者Unknown entity: com.spring.main.pojo.Person 这个问题搞了一天到凌晨才发现一个地方没有配置 期初以为是 hql语句写错,但是发现没有,网上搜来搜去都是说pojo的类名写成表名 ,这样低级错误可能会有,审视了n遍,发现不是,可是为什…

谷歌浏览器如何更改语言

谷歌浏览器是不少用户的最爱&#xff0c;因其稳定、速度、安全&#xff0c;不少企业都用其日常办公。有不少用户反馈&#xff0c;因为工作原因需要使用其他语言&#xff0c;公司安装的谷歌浏览器都是中文的&#xff0c;不方便其使用&#xff0c;那么要如何更改浏览器的语言呢?…

关于myBatis的问题There is no getter for property named 'USER_NAME' in 'class com.bky.model.实例类'

现在流行的 ssm(spring struts2 myBatis) 持久层的mybatis是需要配置映射器的,找了个demo连接的数据库是mysql 于是就修改了一下弄成了连接oracle的 一切就绪之后跑起来 执行插入操作的时候问题来了 ,报了一个这个错我的表是B 字段是id ,user_name ,password 实例类的字段…

腾讯视频如何选择清晰度

1、打开手机进入系统&#xff0c;点击桌面【腾讯视频】。 腾讯视频下载安卓版_腾讯视频如何选择清晰度 2、进入后&#xff0c;点击要下载的电视剧。 腾讯视频下载安卓版_腾讯视频如何选择清晰度 3、进入该剧&#xff0c;点击【下载】。 腾讯视频下载安卓版_腾讯视频如何选…

JS监听DOM宽高的变化

在 JS里面 resize 方法可以监听 window 窗口的大小变化&#xff0c;如果要监听某个Dom的变化话需要用到 MutationObserver 来去监听了&#xff0c;示例代码如下。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">&…