通过反射访问父类的私有成员

Posted wwb0811

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过反射访问父类的私有成员相关的知识,希望对你有一定的参考价值。

    Java语言中,子类是不能访问父类的私有成员的,包括成员变量和方法,但可以通过Java的反射机制去访问。

   其实在一个子类被创建的时候,首先会在内存中创建一个父类对象然后在父类对象外部放上子类独有的属性,两者合起来形成一个子类的对象。所以所谓的继承使子类拥有父类所有的属性和方法其实可以这样理解,子类对象确实拥有父类对象中所有的属性和方法,但是父类对象中的私有属性和方法,子类是无法访问到的,只是拥有,但不能使用。就像有些东西你可能拥有,但是你并不能使用。所以子类对象是绝对大于父类对象的,所谓的子类对象只能继承父类非私有的属性及方法的说法是错误的。可以继承,只是无法访问到而已。

   下面通过一个例子来说明:

技术分享图片

技术分享图片

 

以上是关于通过反射访问父类的私有成员的主要内容,如果未能解决你的问题,请参考以下文章

Java子类访问父类的私有成员变量

子类可以继承父类的一切方法,成员变量,甚至是私有的,但是却不能够访问这些私有的成员变量和方法

java里一个私有的属性如何在其他类里面进行访问?

访问与父类是朋友的类的私有成员

Java中子类继承了父类的私有属性及方法吗?

如何通过反射访问私有方法和私有数据成员?