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允许同一个类中定义多个同名方法,只要形参不一样就可以,如果同一个类中包含了两个或两个以上方法名相同的方法,但形参列表不同,则被成为方法重载(两同一异). 同 ...
随机推荐
- Web开发相关笔记 #02#
[1] HTML 插入第三方. [2] [3] JavaScript 回调函数 & 模块化 --> 用变量封装数据.方法 --> 类比 Java 中的 package var fe ...
- python 数据分析----matplotlib
Matplotlib是一个强大的Python绘图和数据可视化的工具包. 安装方法:pip install matplotlib 引用方法:import matplotlib.pyplot as plt ...
- javascript里用php
<script type="text/javascript" > <?php if (!empty($searchResult)):?> $.searchM ...
- .net 数据缓存(一)之介绍
现在的业务系统越来复杂,大型门户网站内容越来越多,数据库的数据量也越来愈大,所以有了“大数据”这一概念的出现.但是我们都知道当数据库的数据量和访问过于频繁都会影响系统整体性能体验,特别是并发量高的系统 ...
- Centos7 ActiveMQ 安装并配置为开机启动
第一步, 环境准备 更新CentOS7 ,安装epel-release,安装JDK,关闭防火墙 # yum clean all && yum update# yum install - ...
- The Startup Manager FAQ
Main Features: 1. Login Items: Manageable list of applications that are launched automatically ever ...
- [BZOJ3124]直径
Description 小Q最近学习了一些图论知识.根据课本,有如下定义.树:无回路且连通的无向图,每条边都有正整数的权值来表示其长度.如果一棵树有N个节点,可以证明其有且仅有N-1 条边. 路径:一 ...
- Windows Server 2008驱动安装全攻略
安装设备驱动程序原本是一件非常简单的事情,很多驱动程序在安装的时候我们只要不停单击“下一步”按钮,就能让驱动程序顺利地在对应计算机系统“落户”;不过,当身边的计算机系统升级为Windows Serve ...
- composer安装教程 windows系统 | Linux系统 | mac系统
如何安装 Composer 下载 Composer 安装前请务必确保已经正确安装了 PHP.打开命令行窗口并执行 php -v 查看是否正确输出版本号. 打开命令行并依次执行下列命令安装最新版本的 C ...
- 【python】argparse学习(转)
点击这里成为作者 · 更新于 2018-11-14 21:00:36 argparse argparse 是 Python 内置的一个用于命令项选项与参数解析的模块,通过在程序中定义好我们需要的参数, ...