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,一经查实,立即删除!

相关文章

threejs 局部辉光

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

RTMP 在浏览器端播放

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

自定义spring配置文件位置

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

maven项目调试debug错误Source not found.

解决方法&#xff1a; 首先要先将正在调试的项目停止&#xff1b;右键项目 -> Debug As -> Debug Configurations ... 在左侧选择项目对应的启动配置 -> 选中Default -> Remove 点击上图中的Add -> 选Java Project -> 选中对应的项目源码 -> OK

利用dos进入mysql数据库操作数据

1.cd到mysql安装目录bin目录 2.输入ip 用户名,密码 3 3.查看数据库实例 4.进入一个实例 5,操作数据

SVN卸载,修复,等问题:依赖服务或组无法启动.(0x8007042c)解决之一

依赖服务或组无法启动.(0x8007042c) 问题解决办法&#xff1a; 点开始-运行-输入regedit 打开注册表 注册表路径HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services 在下面的列表中&#xff0c;找到winmgmt&#xff08;Windows Management Instrumentation 的服务名称&am…

springmvc框架下的国内地区级联效果(共享一下给学习的小伙伴)

前台页面html <select name"area" id "areaId" οnchange"areaChange();"><option value"-1">--请选择地区--</option><#list configAreaList as configArea ><option value"${configArea.id}"&…

spring(java,js,html) 截图上传

html <#-- 上传头像 测试页 使用imgareaselect 插件 -->最后 上传了这个插件 共学习参考<link rel"stylesheet" type"text/css" href"${frontRes}/imgareaselect/css/imgareaselect-animated.css" /><link rel"styleshee…

实现多个下拉框同一批option,选中其一其他框里去除选中的项(不可选择已选过的项)--js

html 初始化 先把下拉框 satisfactionOptionTList 查出来,以便出发 选中事件 <div class"col-xs-4"> <button type"button" οnclick"resetSatisfaction();" class"btn btn-success btn-sm" style"ba…

myEclipse背景控制插件方案 内附使用说明

各种效果 本人使用21,epf 下载地址: http://download.csdn.net/detail/u014596302/9652857 效果如下: 更多选择 ,赶紧试试吧

java调试,调试模式不进入内部类解决

myeclipse 编辑java 代码是内部类 断点无法进入, 调试时将内部类方法的第一行断点可进入内部类调用的方法

autocomplete 属性 清除input框输入存留历史值,防止下拉历史值显示

autocomplete 属性规定输入字段是否应该启用自动完成功能。 自动完成允许浏览器预测对字段的输入。当用户在字段开始键入时&#xff0c;浏览器基于之前键入过的值&#xff0c;应该显示出在字段中填写的选项。 注释&#xff1a;autocomplete 属性适用于 <form>&#xff0c…

myeclipse不是eclipse,servlet 报错 HttpServlet cannot be resolved to a type

如果还是想洁净一下的小伙伴还是请自己引用一下自己tomcat 的servlet 吧

spring Boot报错 之五种(不打包运行)

Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Fri Aug 18 13:01:46 CST 2017There was an unexpected error (typeNot Found, status404).No message available其一: 之前百度,google,必应,都TM 不好…

spring boot打包问题,访问问题

用eclipse 打jar包 或者war 会报错(换maven-surefire-plugin: 其他版本一样报错 ) 总结所有的可能性 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.3:test (default-test) on project jxBoot: Execution default-test of goal org.apach…

redis缓存(jedis), 链接,存,取,String,map,对象

windwos端修改 redis.windows.conf 文件 配置访问ip 和 端口 和 auth 端口 port 6379 密码 requirepass 123456 cmd cd 到解压目录 执行 redis-server.exe redis.windows.conf 如果不指定配置文件,设置项重新启动后失效 启动成功 若报错 [2368] 21 Apr 02:57:05.611 # …

微信公众号之微信支付(V3版)jsp页面jsapi统一下单调启支付(java版)

web项目 按顺序一步一步来 准备: 申请了微信支付接口的微信公众号一枚 , 备案的域名网站一枚, (如果有没有的这两个东西会耽误你很久,因为微信支付必须是线上,无法本地调试,) 这里说一下 如果有经济条件的最好申请一台win系统的服务器作为测试服务器这样会使你省去很多的麻烦,装…

微信CA证书(本例使用 java,win7服务器)

CA证书 微信支付HTTPS服务器证书验证指引https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter23_4 下载证书文件 DigiCert_Global_Root_CA.der官方安装步骤