2

クラスの子とクラスのインスタンスの違いは何ですか?どちらも「親」からコードを継承しているようです。クラスのインスタンスが実行されたコードであるのと、クラスの子が単に追加のインスタンスを作成するために存在しているのとの違いはありますか?

4

2 に答える 2

4

クラスは、定義、テンプレート、パターンにすぎません。そのクラスのインスタンスは、データを保持するためのメモリスペースが割り当てられたその定義のコピーです。ケーキはケーキレシピのインスタンスだと言っているようなものです。

クラスの子は文字通り次のとおりです。親は基本定義を形成し、それを子が拡張または拡張します。チョコレートケーキが基本的なケーキレシピのバリエーション(または拡張)であるように、これは親のバリエーションです。

OOの概念に関するこの非常に単純な説明は、このようなものが実際にマシンレベルでどのように実装されているかを隠していることに注意してください。クラスにはメソッド(操作)を含めることができます。これらのメソッドのコピーは1つしか保持されません。クラスの新しいインスタンスをインスタンス化しても、メソッドの新しいコピーは作成されません。代わりに、メモリスペースが新しいインスタンスに割り当てられ、各メソッドに実装する必要がある実際のコードを指すためにポインタが使用されます。ただし、各インスタンスには独自のデータ(属性)のコピーがあります。

于 2012-08-29T01:52:53.603 に答える
0

たとえば、phpの場合:

class A {
  //...
}

class B extends A {
  //...
}
$a = new A();

Bの子でありA$aのインスタンスであると言いますA

于 2012-08-29T01:35:45.870 に答える