私は基本的な質問があります メモリレイアウトに関しては継承とどのように関連が異なるのですか?メモリレイアウトに関しては継承とどのように関連が異なるのですか
class BaseClass{
private int i;
public void DoSomethinG(){}
}
class DerivedClass : BaseClass{
}
class AssocClass {
private BaseClass bClass = new BaseClass();
}
プライベートメンバーへのアクセス制限以外に、私はDerivedClassとAssocClassの両方が同じであると信じています。 BaseClassの変数iのメモリは、DerivedClassとAssocClassのサイズが同じである必要があります。
私は私の前提に忠実か、何か些細なことを逃していますか?
よろしく、
うわあ
ブライアン、ありがとうございました。アソシエーションのインスタンスが別の世代にある可能性があります。 – JeeZ
@ Jeez:世代が異なる可能性がありますが、例のコードはそうではありません。ガベージコレクションを通じてAssocClassのインスタンスを保持し、bClass参照に新しいオブジェクトを割り当てると、 'AssocClass'のインスタンスは' BaseClass'のインスタンスより古い世代になります。 –