码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA的重载与重写&隐藏与覆盖

时间:2018-12-18 02:03:02      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:java   参数顺序   bubuko   bsp   png   原理   顺序   返回值   静态类型   

重载:

前提条件:重载是针对方法来说的,

①在同一个类当中,
②函数名字相同,
③但是参数个数不同或参数类型不同或参数顺序不同
④只有返回值不同是不可以的

重写:

前提条件:重写是针对实例方法来说的

1、要求子父类有相同的“返回值类型 方法名(参数列表)”都相同
2、子类方法的权限修饰符不能小于父类方法的权限修饰符
3、若父类方法抛异常,那么子类方法抛的异常不能大于父类方法抛的异常
4、子父类的方法必须同为static或者同为非static

方法不能交叉覆盖:子类实例方法不能覆盖父类的静态方法;子类的静态方法也不能覆盖父类的实例方法

注意:重写是对子类中可见的父类方法而言的,如果在父类中的方法在子类中不可见,那根本就不存在重写一说

 技术分享图片

上图中绿色小三角就代表这个方法重写了

覆盖:

 覆盖就是重写

隐藏:

隐藏是对于静态方法和成员变量(实例变量和静态变量)而言的,就是父类和子类有相同名字的属性,或者父类和子类有相同名字的静态方法时,

属性是可以交叉隐藏:子类的实例变量可以隐藏父类的静态变量;子类的静态变量可以隐藏父类的实例变量

原理:

覆盖的原理是RTTI,也就是通过Class对象实现的,看的是=后面,运行时类型为引用变量所指向的对象的类型

隐藏就是根据单纯的静态类型实现的,看的是=前面,编译时类型是引用变量自身的类型

JAVA的重载与重写&隐藏与覆盖

标签:java   参数顺序   bubuko   bsp   png   原理   顺序   返回值   静态类型   

原文地址:https://www.cnblogs.com/erdanyang/p/10134652.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!