【发布时间】:2013-11-30 18:45:40
【问题描述】:
我有一个类继承问题 - 我有两个这样定义的类:
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'.
,但是当我在上面的示例中将“字段”更改为“复选框”时,我总是得到“未处理的异常:MessageNotUnderstood:#setName:”。你们知道我应该如何让我的子类从它的父类继承 setName: 方法吗?我试图到处寻找答案,但到目前为止还没有运气。
编辑: 完整的错误信息是:
【问题讨论】:
-
您能否转发消息不理解错误的完整消息?我想知道它认为什么对象不理解 setName:。从表面上看,它应该可以工作。
-
这正是我的想法。我添加了带有完整错误消息的 EDIT。
标签: oop inheritance methods smalltalk visualworks