理论上是抽象的,实际一点,比如: 一个父类有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函数只需写一次,改起来也方便。 这种做法真是太完美了!多么伟大的面向对象的编程思想!
能不能简单的讲讲其在面向对象的设计方式上的作用?谢谢朋友
而很少被重写,只是被继承的时候用Dynamic这样会得到最合理的程序优化
一个父类有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函数只需写一次,改起来也方便。
这种做法真是太完美了!多么伟大的面向对象的编程思想!