是否可以在不影响其余实例的情况下改变类的特定实例的行为(即,它们仍然根据类的行为运行)?
例如,在下面的示例中,我希望实例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'