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允许同一个类中定义多个同名方法,只要形参不一样就可以,如果同一个类中包含了两个或两个以上方法名相同的方法,但形参列表不同,则被成为方法重载(两同一异). 同 ...
随机推荐
- Swoole学习(一)了解一下Swoole的强大并在Centos安装Swoole及PHP扩展开启
Swoole是面向生产环境的 PHP 异步网络通信引擎,官网:https://www.swoole.com/ 使 PHP 开发人员可以编写高性能的异步并发 TCP.UDP.Unix Socket.HT ...
- git的应用
对git的应用 (终于第一次用会git) 根据胡东晖同学的博客(使用git推送代码到开源中国以及IDEA环境下使用git)与热心指导,自己跟着做了,虽然途中出了很多很多问题,但是好在最后还是成功了!! ...
- 2017阿里C++研发工程师-校招-单词匹配
题目描述 给一个字符串, 然后给一个字典. 把字符串分解成字典里的单词组成的句子, 请输出所需空格最少的方案.并输出该方案. 样例 例如: 字符串为: str="ilikealibaba&q ...
- spi nor flash使用汇总
Overview SPI flash, 分为spi flash, DUAL spi flash, QUAD spi flash, 3-wire spi, 4-wire spi, 6-wire spi. ...
- Nginx配置X-Forwarded-Proto
需求 最近公司在做全站https,架构上面有Nginx+tomcat Nginx+php,且nginx配置了ssl,tomcat和php项目使用https协议 但是,发送的是https url请求,p ...
- centos 7 删除 virbr0 虚拟网卡virsh net-list
这几天研究dubbo,在电脑上装了几台Center os 7虚拟机,最后把提供者部署到虚拟机中时,发现一个有趣的事:在dubbo-admin管理平台上看到两台不同虚拟机中的服务提供者ip都是这个玩意. ...
- kill me heal me的链接
bilibili上的链接被和谐了,坑爹 韩剧网可以看,不过貌似不太清晰 http://www.hanjuwang.com/play/2015/1851.html 池城治愈营 http://www.bi ...
- Linux服务器上ftp的搭建和使用
知识点: 1. FTP的简介.工作原理 2.在Linux上搭建FTP服务器 参考: 阿里云文档:https://help.aliyun.com/knowledge_detail/60152.html ...
- Azure Active Directory配置java应用的单点登录
下载应用:https://github.com/Azure-Samples/active-directory-java-webapp-openidconnect(普通项目,集成了特殊配置接入微软的注册 ...
- codeforces776D The Door Problem
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...