重载(overLoad)与重写(override)的区别与详解

简介: 重载(overLoad)与重写(override)的区别与详解

1.1 方法重写和重载的区别

:rocket:请看表格对比

名称 发生范围 方法名 形参列表 返回类型 修饰符
重载(overload) 本类 必须一样 类型、个数、顺序至少有一个不同 无要求 无要求
重写(override) 父子类 必须一样 相同 子类重写的方法,返回类型和父类一样或者是父类的子类 子类方法不能缩小父类方法的访问范围

:rocket::rocket::rocket:如果你基础比较好,面向对象思想掌握的比较扎实,那你应该已经看懂了吧;
:rocket::rocket::rocket:如果还有疑问,请看下面更加详细的知识点和代码示例吧。

:airplane::airplane::airplane:

2.1 方法重载(OverLoad)

==相同的方法名字,参数列表不同,调用也就不同==
例如(以下四个方法均构成重载):

//1号方法
public sum (int a,int b){
    return a + b;
}
//2号方法
public sum (int a,int b,int c){
    return a + b + c;
}
//3号方法
public sum (int a,int c,int b,){
    return a + b + c;
}
//4号方法
public sum (int a,double c,int b,){
    return a + b + c;
}
2.1.1方法重载使用细节:
  1. 方法名:必须相同。
  2. 形参列表:必须不同(形参类型&&个数&&顺序,至少有一样不同,参数名无要求)。
  3. 返回值无要求。(3号方法返回值类型为int;4号方法返回值为double)
  4. 在调用sum()方法时,根据参数列表来自己匹配合适的方法。

:airplane::airplane::airplane:

2.2 方法重写/覆盖(override)

发生在继承中,子类有一个方法,和父类的某个方法名称、返回类型、参数一样,即子类方法重写了父类方法

2.2.1方法重写使用细节:
  1. 子类的方法的参数、方法名称要和父类完全一样
  2. 子类的方法返回类型和父类一样或者是父类返回类型的子类(例如:父类为Object子类为String)
  3. 子类方法不能缩小父类方法的访问权限。
//Dog父类
class Dog{
public feed(){
     System.out.print("喜欢吃骨头");
}
//Teddy(泰迪)子类
}
class Teddy extends Dog{
public feed(){
     System.out.print("喜欢吃面条");
}
}

主类中实例化一个泰迪

Teddy wangwang = new Teddy;
wangwang.feed();//

以上有两个feed方法,因为子类Teddy类中的feed()重写了父类Dog中的feed(),所以这里输出的就是“喜欢吃面条”。
以上就是重载与重写的区别与详细描述了!

:car::car::car:肯定有人问:我的泰迪有时候喜欢吃面条,也有时候吃骨头,那我能不能让Teddy(泰迪)类也调用父类中的feed()方法呢?
:bullettrain_side::bullettrain_side::bullettrain_side:敬请期待下节的==多态中的向上转型与向下转型==

相关文章
复选框样式修改(复选框变为圆形)
复选框样式修改(复选框变为圆形)
|
存储 算法 异构计算
GGML 非官方中文文档(5)
GGML 非官方中文文档
404 1
|
运维 监控 数据中心
100Base-FX以太网媒体标准详解
【10月更文挑战第16天】
1162 1
|
消息中间件 存储 监控
解决方案 | 云消息队列RabbitMQ实践
在实际业务中,网站因消息堆积和高流量脉冲导致系统故障。为解决这些问题,云消息队列 RabbitMQ 版提供高性能的消息处理和海量消息堆积能力,确保系统在流量高峰时仍能稳定运行。迁移前需进行技术能力和成本效益评估,包括功能、性能、限制值及费用等方面。迁移步骤包括元数据迁移、创建用户、网络打通和数据迁移。
360 4
|
前端开发
如何在前端项目中单独引入 ElementUI 图标以及使用
这篇文章介绍了如何在前端项目中单独引入Element UI的图标文件以及如何使用这些图标。
1532 0
如何在前端项目中单独引入 ElementUI 图标以及使用
|
开发工具 开发者 Docker
YML配置文件的常用属性
本实验介绍了Docker Compose中YML配置文件的常用属性
YML配置文件的常用属性
|
开发工具 git
git统计某个时间段内的git新增/删除代码行数
git统计某个时间段内的git新增/删除代码行数
1527 0
|
Android开发
Android 封装一个通用的PopupWindow
`PopupWindow`这个类用来实现一个弹出框,可以使用任意布局的`View`作为其内容,这个弹出框是悬浮在当前`Activity`之上的,一般`PopupWindow`的使用
477 0
|
弹性计算 负载均衡 对象存储
阿里云免费云服务器:个人用户每月750小时免费,企业用户
阿里云免费云服务器:个人用户每月750小时免费,企业用户u1服务器2核8GB免费使用3个月
666 0