两种实现方法:
1. VI Server 方式:
子类与父类之间存在静态链接,而父类与子类之间则是动态链接。这意味着,一旦某个类被加载到内存中,其父类就会知晓该子类的存在。根据官方文档说明,这种方法在运行时环境(Runtime Environment)中无效,这一点需要大家注意。

2. 运行时反射(Runtime Reflection)方式:(推荐)
以下代码同样能返回所有已加载到内存中的子类,但相比前一种方法,它使用的 VI Server 功能更少,因此在运行时环境中也能正常工作。我通常在实现插件架构(Plugin Architecture)时使用这种方法。虽然我没有对它做过大量性能测试,但在一个中等规模的项目(约包含 150 个类)中,它的运行时间仅需约 50 毫秒,因此到目前为止使用效果都很好。

或者同时获取出父类所有子类的名称:

这里说明一下,我演示的仅仅是单层继承,如果是多层继承,则子类再作为父类用同样的方法获取;其实也就是递归,就可以列出父类所有的继承链上的子类了。