Bee Smalltalk中的实例行为

时间:2018-09-13 07:56:54

标签: smalltalk bee-smalltalk

是否可以在不影响其余实例的情况下改变类的特定实例的行为(即,它们仍然根据类的行为运行)?

例如,在下面的示例中,我希望实例a与实例b具有不同的打印方式。

假设我有一个MyClass类,它使用以下打印服务响应name

MyClass>>printOn: aStream
    aStream
        nextPutAll: self class; 
        nextPutAll: ' instance named ';
        nextPutAll: self name`

然后,如果我创建实例a,则将具有以下内容:

a := MyClass new name: 'a'.
a printString -> 'MyClass instance named a'

现在,我希望实例b仅打印其名称,而不影响a打印自身的方式。

b := Object new name: 'b'.
b printString -> 'b'

0 个答案:

没有答案