java中什么是变量隐藏_java中成员变量和方法的隐藏

对于成员变量来说,当子类本身具有与继承自父类的成员变量名称相同的成员变量时,便构成了成员变量的隐藏。其含义是,在子类中直接调用该成员变量时,将调用的是子类中本身具有的成员变量,而不是父类继承的成员变量。

子类的自身方法中,若与继承过来的方法具有相同的方法名,便构成了方法的重写(或者说覆盖)。重写的主要特点是能够定义各子类的特有行为。

若用父类引用指向子类对象,当父类引用调用被重写的方法时,Java将会访问被重新定义的子类中的方法。方法的调用按对象的类型调用,无论使用什么类型的引用,其调用的都是具体对象所在类中定义的方法,这与成员变量不同,成员变量按引用的类型调用。

(在运行时,对于成员变量的访问系统接受的是引用类型,引用是哪个类的,系统就访问哪个类的成员。)

引用类型决定调用哪个重载方法,而不是对象类型(注意重载和重写的区别)

若想构成方法的重写,子类中的方法名与参数列表必须完全与被重写的父类方法相同。一旦构成重写,必须遵循如下规则。

(1)返回类型若为基本数据类型,则返回类型必须完全相同;若为对象引用类型,必须与被重写方法返回类型相同,或派生自被重写方法的放回类型。

(2)访问级别的限制一定不能比被覆盖方法的限制窄,可以比被覆盖方法的限制宽。

(3)不能重写被表示为final方法。

(4)覆盖是基于继承的,如果不能继承一个方法,则不能构成重写,不必遵循覆盖规则。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值