奇思妙想 · 2024年 4月 23日 0

如何判断一个对象是否是某个类或者其子类?

104 次浏览

纯编译型语言对此支持很差,ObjC以运行时查找方法而闻名,比C/C++的支持都优秀。

  • ObjC提供isKindOfClass和isMemberOfClass方法可以轻松从运行时得到所属类的信息。
  • C++提供dynamic_cast和typeid判断对象是否是某个类。
  • Java/C#/Python/Swift/PHP/Ruby/JS等语言提供完善的类关系API,形如is*sub*class, is*kind*, *instance*of等等,因为它们的运行时足够强大,提供这些类关系信息易如反掌。
  • PHP 提供 instanceof 方法。