Java重载与覆盖的区别
来源:互联网 发布:我爱淘宝网 编辑:程序博客网 时间:2024/05/17 03:15
重载(overload):通过不同的方法参数来区分,例如不同的参数个数、不同的 参数类型或者不同的参数顺序。
覆盖(override):指的是派生类函数覆盖基类函数,覆盖一个方法,并进行重写来实现不同的作用。
总体来说,重载和覆盖都是Java多态的不同表现形式。其中,重载实在一个类中多态的一种表现,是指在一个类中定义多个同名的方法,他们或有不同的参数个数或者不同的参数数类型。使用重载时应该注意以下几点:
1. 重载通过不同的参数来区分;
2. 不能通过访问权限、返回值类型和抛异常类型来区分;
3. 对于继承而言,如果基类方法的访问权限是private,那么就不能对该方法进行重载;如果派生类也定义了一个同名的函数,这仅仅是一个新的方法,并不是重载。
使用覆盖时应该注意以下几点:
1. 派生类中的覆盖方法必须要和基类中被覆盖方法有相同的函数名和参数;
2.派生类中的覆盖方法的返回值必须要和基类中被覆盖方法的返回值相同;
3. 派生类中的抛异常的类型必须要和基类中被覆盖方法所抛异常一致;
4. 基类中被覆盖方法不能为private,负责其子类只是在定义一个方法,并不是对其进行覆盖。
综上所述,重载与覆盖的区别主要有以下几点;
1. 覆盖是子类和父类之间的关系,是垂直关系;重写是同一个类中方法之间的关系,是一种水平关系;
2. 覆盖只能有一个或一对方法产生;重载时多个方法之间的关系;
3. 覆盖要求参数列表相同;重载要求参数列表不同;
4. 覆盖关系中,调用方法体是根据对象的类型决定的;而重载关系是根据调用的实参与形参来选择方法体。
1 0
- Java重载与覆盖的区别
- 重载与覆盖的区别
- 重载与覆盖的区别
- 重载与覆盖的区别
- 重载与覆盖的区别
- 重载与覆盖的区别
- 重载与覆盖的区别
- java中覆盖、重写与重载的区别
- java中覆盖、重写与重载的区别
- Java重载、覆盖、多态、隐藏的区别与联系
- java中覆盖、重写与重载的区别
- JAVA:重载overload与覆盖(重写)override的区别
- 转:java中覆盖、重写与重载的区别
- java中覆盖、重写与重载的区别
- java中覆盖、重写与重载的区别
- 黑马程序员 java中覆盖、重写与重载的区别
- Java中重载与重写(覆盖)的区别
- Java重载、覆盖、多态的理解与区别
- 第十四周【项目一-(3)二叉排序树】
- VisualStudio20008快捷键大全
- rpm升级JDK
- HDU1517A Multiplication Game
- android窗口显示模式
- Java重载与覆盖的区别
- android AOSP 的test-key签名
- JDK环境变量配置
- 大数据背景下互联网用户行为分析
- windows核心编程-线程挂起和Context
- js实现全选,全不选,反选,批量删除等(Yii)
- MUI框架初级教程
- 【Hadoop】Hadoop官方文档翻译—— YARN ResourceManager High Availability 2.7.3
- 仿魅族日历,乐视日历,小米日历等效果