JAVA中方法和变量在继承中的覆盖和隐藏

Posted 壮壮大学渣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA中方法和变量在继承中的覆盖和隐藏相关的知识,希望对你有一定的参考价值。

http://renyanwei.iteye.com/blog/258304

首先看一下JAVA中方法和变量在继承时的覆盖和隐藏规则

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

2.父类的静态方法被子类的同名静态方法隐藏

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

 

还有几点需要注意的是

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

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

3.这点儿请注意,就是变量只会被隐藏 不会被覆盖 ,无论他是实例变量还是静态变量,而且,子类的静态变量可以隐藏 父类的实例变量,子类的实例变量可以隐藏 父类的静态变量

 

总结下吧

1.同名的实例方法被覆盖 ,同名的静态方法被隐藏 ,child类的getName实例方法覆盖 了parent的getName实例方法,chind的getKind方法隐藏 了parent类的getKind方法

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

3.如果需要访问父类被隐藏 的实例变量,加上super就好了,比如访问父类的name,写上super.name就好了

以上是关于JAVA中方法和变量在继承中的覆盖和隐藏的主要内容,如果未能解决你的问题,请参考以下文章

JAVA中方法和变量在继承中的覆盖和隐藏

方法和变量在继承时的覆盖和隐藏问题

Java继承方法隐藏(覆盖)

Java中的覆盖和隐藏以及final关键字

Java-继承与覆盖摘抄

java覆盖和隐藏