我有问题要弄明白在下面的练习中发生了什么,我正在学习Smalltalk,所以我是新手。
A类>>新 ^ super new initialize。
A>>初始化 一个:= 0
B类>> new:aParameter |实例| 实例:=超级新。 实例b:实例a + aParameter。 ^实例
B个;>初始化 B:= 0
问题说明执行以下代码时会发生什么:
B new:10。
但我无法弄清楚为什么实例变量不属于A类。
由于
答案 0 :(得分:3)
当代码执行“instance:= super new”的初始化程序时,我发现了问题,即超级初始化的缺失。是B类的初始化程序,这就是为什么A实例var没有初始化,以下代码解决了这个问题:
B>>初始化
超级初始化。
B:= 0