superClass的私有成员是否由子类继承... Java?

Sam*_*Sam 3 java inheritance private access-control access-specifier

我经历过这个:

子类是否继承私有字段?

但我还是很困惑......

我说的只是继承而不是访问.我知道他们在副班上并不明显.

但是子类'对象是否拥有超类中那些私有成员的自己的副本?

例如...

class Base {
    private int i;
}

class Derived extends Base {
    int j;
}
Run Code Online (Sandbox Code Playgroud)

现在,

Base b = new Base();
Derived d = new Derived();
Run Code Online (Sandbox Code Playgroud)

int的大小是4

现在,

b的大小是4,d的大小是8

要么

d的大小也只有4?

当然,当我说b和d而不是引用时,我正在谈论堆上的对象.

更新:我刚刚阅读了Kathy Sierra和Bert的SCJP书......它说它们不是继承的......我发布了这个更新,因为仍然有很多人说是的...

mik*_*era 6

是的,子类的实例将具有父类的私有字段的副本.

但是它们对子类是不可见的,因此访问它们的唯一方法是通过父类的方法.