重载的方法通过什么进行区分java,java重载和重写,你能正确区分吗?
我们在平时开发的时候经常会遇见这样一个问题,方法的重载和重写。有时候经常搞混,这篇文章就是为了很好的去整理区分一下。
一个类中,可以有很多的构造方法,而且名字相同都是类名,其实这些方法就已经构成了重载。也就是说,在一个类中,可以有很多名字相同的不同方法。现在一个问题来了,就是java是如何区分这些方法的呢?
方法重载
其实区分重载,有一个很简便的方法,那就是每一个方法有一个独一无二的参数列表。
由以上代码可以看到:
1、参数个数不同可以区分
2、参数的顺序不同可以区分。
注意;返回值类型不同不能区分。
为什么返回值类型不同不能区分呢?这是因为有时候我们定义的方法,我们只是想要简单地去调用,而不想去获取他的返回值。
比如:在调用fff()时,只需要调用fff()或者是fff(1,"数据")而不去获取他的返回值。这样jvm是无法区分的。
方法重写
先看一下重写的概念:
1、在子类中可以根据需要对从基类中继承来的方法进行重写。
2、重写的方法和被重写的方法必须具有相同方法名称、参数列表和返回类型。(注:返回值可以为父类中返回值的子类型.参数若为子类,则不是重写是重载)
3、重写方法不能使用比被重写的方法更严格的访问权限。
4、重写方法不能声明抛出比被重写方法范围更大的异常类型。
总结:重写是子类对所继承父类相同方法的一种更改,这个更改需要遵循格式按照父类的格式,访问权限,抛出异常等等,都在父类方法控制范围内,内部具体实现可以实现不同的效果。
通俗一点来说:重写就是对父类的的同一个方法的改写,但是别人怎么知道你这是重写,不是添加的新方法?这就要求格式必须跟父类相同,别人一看,呀,他俩长得一模一样(指的上面2,3,4规则),肯定是重新写了,就是重写。
看一个例子:
定义父类:
定义子类
这样就完成了方法的重写。
重载的方法通过什么进行区分java,java重载和重写,你能正确区分吗?相关推荐
- 在java中私有方法能被重载吗_我可以在Java中重载私有方法吗?
重载是实现多态的一种机制,其中,一个类包含两个具有相同名称和不同参数的方法. 每当您调用此方法时,方法主体都将基于参数与方法调用绑定. 重载私有方法 是的,我们可以在Java中重载私有方法,但是您可以 ...
- java构造方法重载_Java 重载、重写、构造函数的实例详解
Java 重载.重写.构造函数的实例详解 方法重写 1.重写只能出现在继承关系之中.当一个类继承它的父类方法时,都有机会重写该父类的方法.一个特例是父类的方法被标识为final.重写的主要优点是能够定 ...
- Educoder/头歌JAVA——JAVA面向对象:封装、继承和多态
目录 第1关:什么是封装,如何使用封装 任务描述 相关知识 什么是封装 编辑 封装的意义 实现Java封装的步骤 编程要求 第2关:什么是继承,怎样使用继承 相关知识 继承的基本概念 继承的特性 多 ...
- java中重载 参数顺序_Java方法中的参数太多,第4部分:重载
java中重载 参数顺序 期望将过多的参数传递给Java方法的问题之一是,该方法的客户端很难确定它们是否以适当的顺序传递了适当的值. 在以前的文章中,我描述了如何使用自定义类型 , 参数对象和构建器来 ...
- Java中方法重载和方法重写的区别
文章目录 1 Java中方法重载和方法重写的区别 1 Java中方法重载和方法重写的区别 主要区别如下: 方法重载: 在同一个类中 方法名相同 参数个数.顺序.类型不同 返回值类型.访问修饰符任意 方 ...
- java 方法重载 应用举例,Java 实例 - 重载(overloading)方法中使用 Varargs
以下实例演示了如何在重载方法中使用可变参数:/* author by w3cschool.cc Main.java */public class Main { static void vaTest(i ...
- Java黑皮书课后题第7章:7.8(求数组的平均值)使用下面的方法头编写两个重载的方法,返回数组的平均数。编写一个测试程序,提示用户输入10个double型值,然后调用这个方法显示平均值
7.8(求数组的平均值)使用下面的方法头编写两个重载的方法,返回数组的平均数.编写一个测试程序,提示用户输入10个double型值,然后调用这个方法显示平均值 题目 题目描述 破题 代码 运行实例 题 ...
- JAVA SE、EE、ME,JRE、JDK,基本数据类型,访问修饰符、函数、封装的概念、UML类图、构造方法、this关键字、static关键字、方法重载、方法重写、包(packahe)
运行第一个JAVA程序: 这里使用的开发环境是eclipse,新建一个java工程,然后可以看到src这个是存放java代码的地方,然后在src文件右击新建一个class(类),然后可以看到下图,同样 ...
- java方法重载和重载方法_我们可以在Java中重载main()方法吗?
java方法重载和重载方法 The question is that "can we overload main() method in Java?" 问题是"我们可以在 ...
最新文章
- NODEJS 使用 XLSX模块导出excel文件
- 哪些人适合学软件测试呢
- Science:导入了人类特有基因后,猴脑有了进化的趋势
- ASP.NET网络编程中经常用到的27个函数集
- 解决pip安装时速度慢的问题 镜像源(pip install -i [镜像源地址] [包名])
- 新建centos6虚拟机黑屏_虚拟机centos无法进去选择系统界面,也就是开机过bios就黑屏解决方案...
- js中遍历注册事件时索引怎么获取
- 接口中默认方法和静态方法_接口中的默认方法和静态方法
- cv图像翻转_涨点技巧!汇集13个Kaggle图像分类项目的性能提升指南
- Keras-10 模型可视化
- 密码必须至少为6个字符_1081 检查密码 (15分)
- Python爬虫之(四)urllib库的高级用法
- vue文件的三大组成部分
- 吉林大学研究生课程-面向对象方法2020考试复习资料
- 向上传递 java_Java向上转型向下转型
- c++ 接口继承和实现继承
- 蓝桥杯 7-2求arccos值 C++算法提高 HERODING的蓝桥杯之路
- 新手学习电脑知识的一些方法 oldtimeblog
- 干货 |《深入理解Elasticsearch》读书笔记
- 学生公寓管理系统-javaweb