动态方法和虚拟方法在delphi里面分别表示:
动态方法
当需要调用父类、祖先类的被覆盖方法的时候,是查找继承树,当找到,就调用。减少了VMT占用,但调用慢一些。
虚拟方法
和动态方法不同的是,记录了被覆盖的方法的指针。
lazarus的处理方式是统一成虚拟方法了。也就是说,lazarus里面不存在真正的动态方法。以空间换时间,加快了程序执行速度。
动态方法和虚拟方法在delphi里面分别表示:
动态方法
当需要调用父类、祖先类的被覆盖方法的时候,是查找继承树,当找到,就调用。减少了VMT占用,但调用慢一些。
虚拟方法
和动态方法不同的是,记录了被覆盖的方法的指针。
lazarus的处理方式是统一成虚拟方法了。也就是说,lazarus里面不存在真正的动态方法。以空间换时间,加快了程序执行速度。
转载于:https://www.cnblogs.com/stevenlaz/p/3189250.html