1.。virtual标识一个方法是虚拟方法,这种方法可以被覆盖,编译器通过建立虚拟方法表来查找此类方法的函数地址。不过一个对象的虚拟方法表记载着祖先类和本神的虚拟方法所以,类的层次比较多的时候占用的内存就很大,不过它的调用速度很快。
2。abstract方法首先必须是虚拟的或抽象的,而且只有声明没有定义,只能在派生类中重载他,相当于 c++中的纯虚函数!

解决方案 »

  1.   

    动态方法(dynamic)跟virtual方法的区别是,用virtual方法lizhenjia(暴雪) 说的很清楚了,但是动态方法(dynamic)他的方法表里只记载覆盖后的方法,没有基类中没有覆盖的方法是不记载的,所以可以节省内存空间,但是因为基类中没有覆盖的方法是不记录的,所以访问的速度比较慢,两者究竟用哪个,就看你的具体情况了
      

  2.   

    就是说,virtual方法省时间但耗内存,如果一个virtual方法被继承过多,将有可能造成“类爆炸”
    而dynamic则反之
    因此,若一个方法要被继承好多次,则要用dynamic关键字
      

  3.   

    前面<<在DEPHI中使用类>>我已结贴了,该贴也快了呀