我对类继承有一个问题--我有两个类定义如下:
Smalltalk defineClass: #Field
superclass: #{Core.Object}
indexedType: #none
private: false
instanceVariableNames: 'name type '
classInstanceVariableNames: ''
imports: ''
category: ''和
Smalltalk defineClass: #CheckBox
superclass: #{Smalltalk.Field}
indexedType: #none
private: false
instanceVariableNames: 'checked '
classInstanceVariableNames: ''
imports: ''
category: ''在课堂“字段”中,我有一个方法setName:
setName: n
name := n.
^n对于这样的事情来说,它非常好:
|tmp|
tmp := Field new.
tmp setName: 'fancy name'.,但在上面的示例中,当我将'Field‘改为'CheckBox’时,总是会得到“未处理的异常: MessageNotUnderstood:#setName:”。你们知道我应该如何让我的子类从它的父类继承setName:方法吗?我到处都在找答案,但到目前为止还没有找到答案。
编辑:完整的错误消息是:


发布于 2013-11-17 19:23:59
好的,下面是我的问题:我很蠢。我在乱搞我的CheckBox初始化方法,最后意外地删除了^self行。把它放回去后一切都很好。谢谢你的帮助,大卫,很抱歉占用你的时间。
发布于 2013-11-17 18:11:49
不知何故,您的CheckBox类没有被编译。检查拼写。确保没有名为CheckBox的现有类。确保可以在浏览器中看到CheckBox类。
发布于 2013-11-17 19:09:07
就在云雀上--在工作区窗口中,转到变量选项卡,确保没有一个名为CheckBox的变量。如果是,请删除它,然后再试一次。
https://stackoverflow.com/questions/20033869
复制相似问题