班级的孩子和班级的实例有什么区别?两者似乎都从他们的“父母”继承了代码。不同之处在于,类的实例是执行代码而不是仅仅是为了创建其他实例的类的子类吗?
答案 0 :(得分:3)
一个类只不过是一个定义,一个模板,一个模式。该类的一个实例是该定义的副本,该副本已分配用于保存其数据的内存空间。这就像说蛋糕是蛋糕食谱的一个例子。
一个类的子类字面意思是 - 父类形成一个基本定义,然后子类扩展或增强。这是父母的一个变种,很像巧克力蛋糕是一种变体(或它延伸)一种基本的蛋糕食谱。
请注意,对OO概念的这个非常简单的解释隐藏了这些东西是如何在机器级实际实现的。类可以包含方法(操作) - 这些方法只保留一个副本,实例化类的新实例不会创建方法的新副本。而是将内存空间分配给新实例,指针将用于指向应为每个方法实现的实际代码。但是每个实例都有自己的数据副本(属性)。
答案 1 :(得分:0)
例如使用php:
class A {
//...
}
class B extends A {
//...
}
$a = new A();
我们说B
是A
的孩子,$a
是A
的实例。