Java 方法重载与方法重写
方法重载(Overload):
1.在同一个类中
2.方法名相同
3.参数的个数或类型不同
4.与方法的返回类型无关
5.与方法的修饰符无关
方法重写(Override):
方法重写必须是子类继承父类,才能进行对父类的方法进行重写。
1.重写方法与被重写方法必须拥有相同的方法名
2.重写方法与被重写方法必须拥有相同的参数列表
3.重写方法的返回值类型必须与被重写方法的返回值类型相同
4.重写方法不能缩小被重写方法的访问权限
这里注意的是重写方法,必须是子类中能访问到的父类的方法。
方法重载与方法重写的区别:
1.重载是同一个类中的同名方法,要求方法名相同,参数列表不同,与返回值类型无关
2.重写涉及的是子类和父类之间的同名方法,要求方法名相同、参数列表相同、返回值类型相同
方法重载示例:
- //默认初始方法,没有参数
- public void work(){}
- //重载的方法,含有一个int类型的参数
- public void work(int x){}
- //重载的方法,含有一个String类型的参数
- public void work(String str){}
- //重载的方法,含有两个int类型的参数
- public void work(int x,int y){}
- //错误的重载1,这里会出错,因为重载与返回类型无关
- public int work(){return 0;}
- //错误的重载2,这里会出错,因为重载与访问修饰符无关
- private int work(){}
测试效果的话,直接使用this关键加.重载的方法会显示出来。
方法重写示例:
- /*
- * 父类代码
- */
- public class Parent {
- //要被重写的方法
- public void work(){
- //省略代码块
- }
- //要被重写的方法
- public void run(String p){
- //省略代码块
- }
- public void sleep(String p){
- //省略代码块
- }
- //此方法无法被重写,因为在子类中访问不到
- private void eat(){
- //省略代码块
- }
- }
- /*
- * 子类代码
- */
- public class Child extends Parent {
- //重写了父类方法
- public void work(){
- //省略代码块
- }
- //重写了父类方法
- public void run(String people){
- //省略代码块
- }
- //此处无法构成方法重写,因为与父类中的sleep方法的参数列表不同
- public void sleep(){
- }
- //这里会提示编译错误,因为与父类的方法返回类型不同
- public String sleep(String p){
- return "nihao";
- }
- }
Java 方法重载与方法重写的更多相关文章
- Java笔记 —— 方法重载和方法重写
Java笔记 -- 方法重载和方法重写 h2{ color: #4ABCDE; } a{ text-decoration: none !important; } a:hover{ color: red ...
- JAVA学习(七):方法重载与方法重写、thiskeyword和superkeyword
方法重载与方法重写.thiskeyword和superkeyword 1.方法重载 重载可以使具有同样名称但不同数目和类型參数的类传递给方法. 注: 一是重载方法的參数列表必须与被重载的方法不同,而且 ...
- Java学习总结之方法重载和方法重写
在学习方法的阶段我学习了方法重载(Overload),而在学习面向对象三大特性之继承的时候我又学习了方法重写(Override). 概念: 方法重载:在同一个类中,允许存在一个以上的同名方法,只要 ...
- AJPFX总结方法重载与方法重写的区别
方法重载在同一个类中,可以出现同名方法,但是这些同名方法的参数列表必须不同,这样定义方法叫做方法重载.方法重载的特点重载的注意事项重载与返回值无关重载与具体的变量标识符无关重载只与方法名与参数相关重载 ...
- Java-Runoob-高级教程-实例-方法:15. Java 实例 – 重载(overloading)方法中使用 Varargs
ylbtech-Java-Runoob-高级教程-实例-方法:15. Java 实例 – 重载(overloading)方法中使用 Varargs 1.返回顶部 1. Java 实例 - 重载(ove ...
- PHP面向对象编程——深入理解方法重载与方法覆盖(多态)
什么是多态? 多态(Polymorphism)按字面的意思就是“多种状态”.在面向对象语言中,接口的多种不同的实现方式即为多态.引用Charlie Calverts对多态的描述——多态性是允许你将父对 ...
- PHP面向对象编程之深入理解方法重载与方法覆盖(多态)
这篇文章主要介绍了PHP面向对象编程之深入理解方法重载与方法覆盖(多态)的相关资料,需要的朋友可以参考下: 什么是多态? 多态(Polymorphism)按字面的意思就是"多种状态" ...
- Java的重载以及与重写的区别
一.什么是方法重载 方法的重载就是在同一个类中,有着若干个名字相同的方法.在具体调用这些方法的时候,通过传递参数的不同来调用这些重载方法. 二.为什么需要方法重载 方法名的定义需要做到见名知意,功能类 ...
- 疯狂java学习笔记之面向对象(六) - 构造器重载、方法重载和方法重写
一.方法重载(Overload): Java允许同一个类中定义多个同名方法,只要形参不一样就可以,如果同一个类中包含了两个或两个以上方法名相同的方法,但形参列表不同,则被成为方法重载(两同一异). 同 ...
随机推荐
- spring-boot单元测试
一.为什么要写单元测试 很多程序员有两件事情不愿意做: 写注释. 写单元测试. 但是在看代码时又会希望有清晰明了的注释,重构代码时能有一套随时可以跑起来的单元测试. 最近在迁移一个项目,从sqlser ...
- CSS 图片廊
CSS 图片廊 一.示例一 代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...
- mouseleave mouseout时候悬浮框不应该消失的时候消失了 css 解决办法
要实现的效果和代码思路 简单来说就是 用一个div包着喇叭和悬浮框 悬浮事件写在这个div上 鼠标悬浮到div上的时候 悬浮框出现 最终要做成鼠标从小喇叭移动到下面的框上的时候 下面框是不会消失的. ...
- Mac下需要安装的一些软件及常用的配置文件
常用软件配置文件 1..gitconfig # This is Git's per-user configuration file. [user] name = 张文 email = zhangwen ...
- POJ-2418 Hardwood Species(二叉搜索树)
思路就是先将每个单词存进二叉树中,没出现一次,修改该单词所在结点的cnt++: 最后通过递归中序遍历输出结果. 思路很清晰,主要注意一下指针的使用,想一想为什么要这么用? 简单的解释就是,insert ...
- 使用commons-pool2改造APNs连接池
最近公司很多人反应apns推送的消息很慢,有时候需要5.6分钟才收到消息,我检查了下日志发现确实存在这个问题. 我们使用的是 https://github.com/relayrides/pushy 这 ...
- LeetCode——Find Largest Value in Each Tree Row
Question You need to find the largest value in each row of a binary tree. Example: Input: 1 / \ 3 2 ...
- Tachyon:Spark生态系统中的分布式内存文件系统
转自: http://www.csdn.net/article/2015-06-25/2825056 摘要:Tachyon把内存存储的功能从Spark中分离出来, 使Spark可以更专注计算的本身, ...
- 跟着vamei复习概率论
最近重新看了一下概率论,感觉很多东西都遗忘了,还会陷入各种误区,赶紧的纠正回来. 概率论这块,主要内容包括: 事件.条件概率.随机变量.随机变量的分布函数.概率密度.联合分布.期望.方差.协方差. 我 ...
- java将配置信息写在数据库(利用反射)
Demo出处: 1. package com.fpx.pcs.prealert.process.xml.service.impl; public class CainiaoPushMessageSer ...