Smalltalk 如何确定一个类是否是我的类实例的超类

Smalltalk 如何确定一个类是否是我的类实例的超类,smalltalk,pharo,Smalltalk,Pharo,我曾尝试在Pharo中找到一种方法来确定特定的类实例是否将特定的类作为超级类,但失败了。对于超类,我不仅指的是作为的子类的类,而且指的是继承线上的所有其他类 我原以为Object>>issubclasssof中会有一条消息:但遗憾的是,我找不到这样的消息我不清楚您想查找什么,但如果您想查看某个对象是aClass的实例还是它的超类,您可以使用: anObject isKindOf: aClass 如果要查看对象(类)是否从aClass继承,请使用: anObject inheritsFrom:

我曾尝试在Pharo中找到一种方法来确定特定的类实例是否将特定的类作为超级类,但失败了。对于超类,我不仅指的是作为的子类的类,而且指的是继承线上的所有其他类


我原以为Object>>issubclasssof中会有一条消息:但遗憾的是,我找不到这样的消息

我不清楚您想查找什么,但如果您想查看某个对象是aClass的实例还是它的超类,您可以使用:

anObject isKindOf: aClass
如果要查看对象(类)是否从aClass继承,请使用:

anObject inheritsFrom: aClass

我不清楚您想查找什么,但如果您想查看某个对象是aClass的实例还是它的超类,可以使用:

anObject isKindOf: aClass
如果要查看对象(类)是否从aClass继承,请使用:

anObject inheritsFrom: aClass

只有一个类可以是另一个类的子类。因此,您必须首先获得对象的类:

String inheritsFrom: Collection "prints: true"
'Pharo is cool' class inheritsFrom: Collection "prints: true"

只有一个类可以是另一个类的子类。因此,您必须首先获得对象的类:

String inheritsFrom: Collection "prints: true"
'Pharo is cool' class inheritsFrom: Collection "prints: true"

如果我理解你的话,isKindOf:用于实例,而inheritsFrom:用于类?在我的例子中,aAnObject是一个类的实例,让我们称它为X,我想知道这个对象的类是否继承了另一个类,让我们称它为Y。ps:我尝试了isKindOf:它很有效,谢谢,但正如Uko所说,
isKindOf:
也回答true,如果对象是参数的实例,不仅当它是参数超类的实例时。所以
'Kilon'是kindof:ByteString
回答true,而
'Kilon'类是isSubclassOf:ByteString
回答false。所以如果我理解你的意思,isKindOf:用于实例,而inheritsFrom:用于类?在我的例子中,aAnObject是一个类的实例,让我们称它为X,我想知道这个对象的类是否继承了另一个类,让我们称它为Y。ps:我尝试了isKindOf:它很有效,谢谢,但正如Uko所说,
isKindOf:
也回答true,如果对象是参数的实例,不仅当它是参数超类的实例时。所以
'Kilon'有点像:ByteString
回答true,而
'Kilon'类则是classof:ByteString
回答false。