java中什么是变量隐藏_java中成员变量和⽅法的隐藏
对于成员变量来说,当⼦类本⾝具有与继承⾃⽗类的成员变量名称相同的成员变量时,便构成了成员变量的隐藏。其含义是,在⼦类中直接调⽤该成员变量时,将调⽤的是⼦类中本⾝具有的成员变量,⽽不是⽗类继承的成员变量。
⼦类的⾃⾝⽅法中,若与继承过来的⽅法具有相同的⽅法名,便构成了⽅法的重写(或者说覆盖)。重写的主要特点是能够定义各⼦类的特有⾏为。java重写和重载的区别
若⽤⽗类引⽤指向⼦类对象,当⽗类引⽤调⽤被重写的⽅法时,Java将会访问被重新定义的⼦类中的⽅法。⽅法的调⽤按对象的类型调⽤,⽆论使⽤什么类型的引⽤,其调⽤的都是具体对象所在类中定义的⽅法,这与成员变量不同,成员变量按引⽤的类型调⽤。
(在运⾏时,对于成员变量的访问系统接受的是引⽤类型,引⽤是哪个类的,系统就访问哪个类的成员。)
引⽤类型决定调⽤哪个重载⽅法,⽽不是对象类型(注意重载和重写的区别)
若想构成⽅法的重写,⼦类中的⽅法名与参数列表必须完全与被重写的⽗类⽅法相同。⼀旦构成重写,必须遵循如下规则。
(1)返回类型若为基本数据类型,则返回类型必须完全相同;若为对象引⽤类型,必须与被重写⽅法返回类型相同,或派⽣⾃被重写⽅法的放回类型。
(2)访问级别的限制⼀定不能⽐被覆盖⽅法的限制窄,可以⽐被覆盖⽅法的限制宽。
(3)不能重写被表⽰为final⽅法。
(4)覆盖是基于继承的,如果不能继承⼀个⽅法,则不能构成重写,不必遵循覆盖规则。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论