如果我有一个C类,它继承B类,并且B类继承A类,那么 如果我创建一个C类的对象,是否会创建父类(super class)的对象?如果是的话怎么办?? 如何访问A类的私有(private)成员??
最佳答案
Does the object of superclass created when object of derived class is created?
没有。
父类(super class)构造函数用于初始化当前对象的父类(super class)定义状态,但这并不等于创建父类(super class)的实例。
If I have a class C which inherits class B and class B inherits class A, then If I create an object of Class C, is the object of superclass created??
没有。见上文。
如果您创建 C 的实例,您将拥有一个最派生类型为 C 的对象。该对象也是 B 的实例
,但它可能由于 C 中的方法重写和其他原因,其行为与常规 B 不完全相同。
If yes, how??
没有实际意义。
How to access the private members of class A??
您无法从子类直接访问父类(super class)的 private
成员。这就是 private
访问修饰符的含义。如果您需要访问它们,则需要使用它们,您要么需要在父类(super class)中创建非私有(private)方法来执行此操作(例如 getter 和/或 setter),要么更改成员的访问权限。
(另一种方法是使用反射来覆盖 private
访问修饰符,但您只能将其用作最后的手段。最好修复父类(super class)代码以提供所需的访问权限.. .或者弄清楚子类根本不需要访问。)
关于java - 创建派生类对象时是否创建父类(super class)对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10383168/