JAVA中的基础-----重载与重写(覆盖)的区别:overload与override
来源:互联网 发布:2009款mac mini拆机 编辑:程序博客网 时间:2024/05/20 19:46
JAVA中多态的实现机制主要通过overload和override实现。
1)方法的重载:简言之,就是指同一个类有多个同名的方法,这些方法拥有不同的参数(同名不同参)。可以认为是类中方法的多态性,也称为编译时多态。
2)方法的重写(覆盖):子类可覆盖父类的方法,已达到“个性化“的目的。(同名同参同类型)使得JAVA可以在运行时动态绑定(将一个方法的调用与一个方法的主体连接在一起),也称为运行时多态。
两者的区别:
重载(overload):是指在一个类中定义了多个同名不同参的方法。
1)重载是通过参数的不同来区别的,如参数个数、参数的类型、参数的顺序不同。
2)重载不能通过方法的访问权限(public/protected/private)、返回值类型(String/void/int)和抛出的异常来进行重载。
3)对继承来说,如果基类方法的访问权限为private(私有的),那么不能在派生类中对其重载(Ps:即不可以对private 修饰过的方法进行重载)。
若派生类也定义了一个同名的函数,这只是新的方法,不会达到重载的效果。
重写或覆盖(Override):是指派生类覆盖基类函数。
1)派生类中覆盖的方法必须与基类中的方法同名同参。
2)派生类中覆盖的方法的返回值必须与基类中的保持一致。
3)派生类中覆盖的方法所抛出的异常必须与基类保持一致。
4)不可以对基类中private修饰的方法进行覆盖(即使写了也是属于新的子类方法)
5)不可以在派生类出现与基类同名同参不同返回类型的函数,如果有,编译器错误(因为编译器无法区分同名函数是属于派生类还是基类的)。
两者的主要区别:
1)覆盖Override是父子类之间的关系(垂直关系),而重载Overload是自己的内部方法之间的关系(水平关系)。
2)覆盖Override只能由一个方法或只能由一对方法产生关系,而重载Overload是多个方法之间的关系。
3)覆盖Override调用方法体是根据对象的类型来决定,但是重载Overload是根据调用时的实参和形参表来选择方法体的。
- JAVA中的基础-----重载与重写(覆盖)的区别:overload与override
- JAVA:重载overload与覆盖(重写)override的区别
- java重载(overload)与重写(override)的区别
- Java 重写(即覆盖Override)与重载(Overload)与多态几个概念的区别分析
- 【Java基础】 重写(Override)与重载(Overload)
- 重载overload与重写override的区别
- 重载(overload)与重写(override)的区别
- 重载overload与重写override的区别
- Java的重载(Overload)与重写(Override)
- Java的重载(Overload)与重写(Override)
- java中的重写(override)与重载(overload)
- override(重写)与overload(重载)的区别
- override(重写)与overload(重载)的区别
- 重载(overload)与重写(override)的区别
- 重载(overload)与覆盖(override)的区别
- 重载(overload)覆盖(override)与隐藏 的区别
- Java--方法重写,重写(Override)与重载(Overload)区别
- 重写(覆盖)与重载 Override and Overload
- 每天laravel-20160721|Application-1
- 欢迎使用CSDN-markdown编辑器
- C++的三种继承方式
- elcipse建maven web 项目
- 纯软的SIP语音服务器API
- JAVA中的基础-----重载与重写(覆盖)的区别:overload与override
- Activity的生命周期
- Druid数据库连接池简单使用介绍
- latex公式导入到word中
- Vmware复制或克隆Linux系统后找不到eth0的解决方案
- QString用法总结
- 编辑文章 - 博客频道 - CSDN.NET
- ovs conntrack based firewall driver (by quqi99)
- LDAP与AD