当前位置:网站首页>“重载”与“重写”的区别
“重载”与“重写”的区别
2022-08-08 06:28:00 【记得爱蓝色】
首先我们要知道这两个词是完全不同的意思:
重载(Overload)是指:在同一个类中可以定义很多方法,但很多的方法实现的功能是相同的,只是参数不同(类型,顺序,个数),我们把这种相同方法名,只有参数不同称为方法重载。
例如:
public class Demo02 {
public static void main(String[] args) {
//方法的重载:在同一个类中,针对相同功能的一组同名方法的定义,方法的参数(类型、个数、顺序)
Demo02 dm = new Demo02();
dm.food("芝芝莓莓");
}
public void food() {
System.out.println("炒年糕");
}
public void food(String name) {
System.out.println("你想吃:" + name);
}
public void food(String name, double price) {
if(price > 0 ) {
System.out.println("食品是:" + name + "价格为:" + price);
}else {
System.out.println("请重新输入!");
}
}
}
值得注意的是:重载的返回值类型都是相同的。
了解到重载后,我们来具体看一下重写。
重写(Override)是指:在继承关系中,子类定义了一个与父类完全相同的方法被称为重写。
重写的意义在于子类在使用父类的方法时某些方法并没有达到自己想要的运行结果,对原方法进行重写。
我们来以toString()方法为例:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
在Object类中toString()方法返回的结果是类名[email protected] + 哈希值,但有时我们并不希望返回这个结果,于是对toString()方法进行重写:
public class Demo03 {
public static void main(String[] args) {
Object obj = new Object();
String str1 = obj.toString();
System.out.println(str1 );
Book book = new Book("悲惨世界","雨果");
String str2 = book.toString();
System.out.println(str2);
Book bookx = new Book("西游记", "吴承恩");
System.out.println(bookx); //自动调用对象的toString()方法
}
}
//图书类
class Book {
private String bookName;
private String author;
// 构造方法
public Book(String bookName, String author) {
this.bookName = bookName;
this.author = author;
}
//重写toString()
@Override
public String toString() {
String s = String.format("<<%s>>------%s", bookName,author);
return s;
}
进行重写以后,调用toString()方法返回的就是我们想要的:
<<悲惨世界>>------雨果:
<<西游记>>------吴承恩
边栏推荐
- The state machine control shift register multisim simulation in the process of state variables and state transition conditions don't match
- 多数之和小结
- 【Android安全】Oneplus 5T root 刷机 救砖
- 【图形学】14 UnityShader语义(二)
- kubeadm init cannot find network namespace 错误
- 基于FTP协议的文件上传与下载
- 【数据序列化】扁平结构与嵌套结构
- 【Android安全】手机Root、刷机、救砖常用命令
- 性能测试------LoadRunner
- How to get all child objects under an object in Unity
猜你喜欢
随机推荐
数据分表小结
Mysql大并发热点行更新的两个骚操作
[Unity] 自定义日志系统 解决Unity Log的痛点
Unity3D objects up and down or so rotation (is not affected by axes object itself)
大型直播平台应用架构浅谈
什么是类与对象?
Next主题美化
【图形学】18 光照模型(三、镜面反射的Shader实现)
【Unity】unity中对象池的使用
排序,欸嘿,排序
Unity_圆环滑动条(圆形、弧形滑动条)
【图形学】01 数学部分(一、集合和三角函数)
Unity_折线图+UI动画
The code in Unity HDRP dynamically modifies the skybox and other environment parameters
Mysql一分钟定位 Next-Key Lock,你需要几分钟
操作Zip压缩文件流的用法总结
每日一题47-48
【数据序列化】扁平结构与嵌套结构
自定义类加载器
tcpdump进行DNS抓包