2

我很难弄清楚以下练习中发生了什么,我正在学习 Smalltalk,所以我是新手。

A类>>new ^super new 初始化。

A>>初始化 a:=0。

B类>>新:a参数|实例| 实例:=超级新。实例 b:实例 a + aParameter。^实例

B>>初始化 b:=0。

问题说明了执行以下代码时会发生什么:

B新:10。

但是我想不通为什么实例变量不属于A类。

谢谢

4

1 回答 1

3

我发现了这个问题,超级初始化的缺失,当代码被执行时,“instance := super new”的初始化程序。是 B 类的初始化程序,这就是 A 实例 var 未初始化的原因,以下代码解决了该问题:

B>>初始化

超级初始化。

b:=0。

于 2010-04-07T20:27:21.770 回答