课程问题(超级新)

时间:2010-04-07 18:51:28

标签: class new-operator smalltalk super

我有问题要弄明白在下面的练习中发生了什么,我正在学习Smalltalk,所以我是新手。

A类>>新   ^ super new initialize。

A>>初始化   一个:= 0

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

B个;>初始化   B:= 0

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

B new:10。

但我无法弄清楚为什么实例变量不属于A类。

由于

1 个答案:

答案 0 :(得分:3)

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

B>>初始化

超级初始化。

B:= 0