抽象类--〉〉〉〉为什么要有抽象类,他存在的意义是什么?? 各位指点.. / 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 比如: 要发现一个什么机器,我们可以会这样:先不做内容,我们先做一个外壳,然后把这个外壳拿给客户,对客户说:这就是我们将要做的东东,按钮A 有什么功能,按钮B有什么功能,按钮C又有什么功能。客户又提了些要求,我们就把"功能接口"完善了。 回来后,我们做了第一代机器,只实现了一部分功能。这是个 beta 版,客户确认了。 我们再做第二个 beta ,第三个beta .... 终于我们做出了一个完全满足客户要求的 Release 版了。 最后有些叼专的客户又提了些要求,我们又出了一个 Pro 版。这些所有版本在接口上都第一个外壳是一样的。(兼容的)第一个没有功能的外壳就是抽象类(也可以叫接口) 说的很有趣我也来凑凑热闹,比如说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就着样,不知道我说清楚没有 xjwy(程序春秋) 知道我需要一个例子就来了一个例子 呵呵 yeeyee的第一条懂了第二条没见过 怎样快速学会面向对象的编程思维? 像QQ自动弹出消息的效果是怎么实现的? SQL语句 delphi调用Vc的dll的问题 找哥哥妹妹们帮帮忙,小弟弟在此谢过了? 再求一个sql语句:如何使用distinct? 如何动态生成Shape?? delphi ADOQuery if语句如何改正,目前显示“list index out of bounds(2)" 如何把应用程序作为一项服务在系统中启动? 怎样把QReport在自定义的预览窗口中显示出来 求字符串压缩函数或例子 各位高手救命,关于打印
要发现一个什么机器,我们可以会这样:先不做内容,我们先做一个外壳,然后把这个外壳拿给客户,对客户说:这就是我们将要做的东东,按钮A 有什么功能,按钮B有什么功能,按钮C又有什么功能。客户又提了些要求,我们就把"功能接口"完善了。
回来后,我们做了第一代机器,只实现了一部分功能。这是个 beta 版,客户确认了。
我们再做第二个 beta ,第三个beta ....
终于我们做出了一个完全满足客户要求的 Release 版了。 最后有些叼专的客户又提了些要求,我们又出了一个 Pro 版。这些所有版本在接口上都第一个外壳是一样的。(兼容的)第一个没有功能的外壳就是抽象类(也可以叫接口)
比如说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
就着样,不知道我说清楚没有
的第一条懂了
第二条没见过