/

解决方案 »

  1.   

    比如:
      要发现一个什么机器,我们可以会这样:先不做内容,我们先做一个外壳,然后把这个外壳拿给客户,对客户说:这就是我们将要做的东东,按钮A 有什么功能,按钮B有什么功能,按钮C又有什么功能。客户又提了些要求,我们就把"功能接口"完善了。
      回来后,我们做了第一代机器,只实现了一部分功能。这是个 beta 版,客户确认了。
      我们再做第二个 beta ,第三个beta ....
      终于我们做出了一个完全满足客户要求的 Release 版了。  最后有些叼专的客户又提了些要求,我们又出了一个 Pro 版。这些所有版本在接口上都第一个外壳是一样的。(兼容的)第一个没有功能的外壳就是抽象类(也可以叫接口)
      

  2.   

    说的很有趣我也来凑凑热闹,
    比如说Assign,大家都知道,它是同类型对象的赋值
    他是TPersistent 的一个抽象方法,
    其实它在TPersistent定义是很简单的,如下  TPersistent = class(TObject)
      private
        procedure AssignError(Source: TPersistent);
      protected
        procedure AssignTo(Dest: TPersistent); virtual;
        procedure DefineProperties(Filer: TFiler); virtual;
        function  GetOwner: TPersistent; dynamic;
      public
        destructor Destroy; override;
        procedure Assign(Source: TPersistent); virtual;
        function  GetNamePath: string; dynamic;
      end;procedure TPersistent.Assign(Source: TPersistent);
    begin
      if Source <> nil then Source.AssignTo(Self) else AssignError(nil);
    end;我门知道很多类都有Assign,比如TBITMAP,
    说白了抽象类就是声明一个接口,然后让它在不同的环境下加入自己需要的功能 a:Tbitmap;
     b:tbitmap; a.loadfromfile(...);
     b.assign(a)         //在这里是赋个图片 给b
    就着样,不知道我说清楚没有
      

  3.   

    xjwy(程序春秋) 知道我需要一个例子就来了一个例子 呵呵 yeeyee
    的第一条懂了
    第二条没见过