继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

方法和变量在继承关系中的重写与隐藏

潇湘沐
关注TA
已关注
手记 104
粉丝 12
获赞 38

  1.概念

                (1)隐藏:A隐藏了B的变量和方法,那么A不能访问B被隐藏的变量或者方法,但是将A转换成B时,可以访问B中被隐藏的变量和方法;

                (2)覆盖(重写):A覆盖了B的变量和方法,那么A不能访问B被覆盖的变量或者方法,将A转换成B时,仍然不能访问B被覆盖的变量或方法。

        2.方法和变量在继承时的覆盖和隐藏的规则

                (1)父类的实例变量和静态变量能被子类的同名变量隐藏;

                (2)父类的静态方法被子类的同名静态方法隐藏;

                (3)父类的实例方法被子类的同名实例变量覆盖;

        3.注意点

                (1)不能用子类的静态方法隐藏父类中同样标示的实例方法(返回值、名字、参数都一样);

                (2)不能用子类的实例方法覆盖父类中同样标示的静态方法;

                (3)变量只会被隐藏不会被覆盖,无论它是实例变量还是静态变量,而且,子类的静态变量可以隐藏父类的实例变量,子类的实例变量可以隐藏父类的静态变量。

        4.总结

                (1)同名的实例方法被覆盖,同名的静态方法被隐藏;

                (2)隐藏和覆盖的区别在于,子类转换成父类对象后,能够访问父类被隐藏的方法和变量,而不能访问父类被覆盖的方法;

                (3)如果需要访问父类被隐藏的实例变量,加上super就好了,比如要访问父类的age,协商super.age就好了。

原文链接:http://www.apkbus.com/blog-815579-60807.html

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP