2

类的子类和类的实例有什么区别?两者似乎都从他们的“父母”那里继承了代码。一个类的实例是执行代码,与一个类的子类只是为了创建额外的实例而存在的区别吗?

4

2 回答 2

4

一个类只不过是一个定义、一个模板、一个模式。该类的一个实例是该定义的一个副本,该定义已分配了用于保存其数据的内存空间。这就像说蛋糕是蛋糕食谱的一个实例。

一个类的子类字面意思是——父类形成一个基本定义,然后子类扩展或增强它。它是父级的变体,就像巧克力蛋糕是基本蛋糕食谱的变体(或扩展)一样。

请注意,对 OO 概念的这个非常简单的解释隐藏了这些东西是如何在机器级别实际实现的。一个类可以包含方法(操作)——这些方法只保留一个副本,实例化类的新实例不会生成方法的新副本。相反,内存空间被分配给新实例,并且指针将用于指向应该为每个方法实现的实际代码。但是,每个实例都有自己的数据(属性)副本。

于 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 回答