如题

解决方案 »

  1.   

    to: blucecat(一言,稀音) 
    能不能简单的讲讲其在面向对象的设计方式上的作用?谢谢朋友
      

  2.   

    那在类继承中使用override不是可以覆盖基类的方法吗?好象并不要求被覆盖的方法必须是动态的或者是抽象的啊?还是我记错了??!!
      

  3.   

    关键字dynamic和virtual声明的方法都可以在其子类中使用override重载,实现多态Virtual方法在速度方面相对更优化,而Dynamic在代码尺寸方面相对更优化。一般在需要多次重写方法的时候用Virtual
    而很少被重写,只是被继承的时候用Dynamic这样会得到最合理的程序优化
      

  4.   

    理论上是抽象的,实际一点,比如:
    一个父类有100个子类,每个子类都有A,B,C三个函数,100个子类的A函数都是这样写的
    function A:integer;
    begin
      result:=B+C;//B,C函数在100个子类中的实现都不一样,但函数定义是一样的
    end;
    那么100个子类你就要重复写100个相同的A函数,当然这是不使用多态带来的后果,(如果要修改A函数,后果简直不敢设想).
    如果使用多态,即在父类中用virtual或Dynamic定义B、C,并在父类中实现A函数,再在100个子类中分别实现B、C函数,那么A函数只需写一次,改起来也方便。
    这种做法真是太完美了!多么伟大的面向对象的编程思想!