抽象类--〉〉〉〉为什么要有抽象类,他存在的意义是什么?? 各位指点.. / 解决方案 » 免费领取超大流量手机卡,每月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的第一条懂了第二条没见过 如何结合HOTKEY组件修改系统热键? 急!急!急!,请教一个dbcheckbox的问题! delphi问题2个 intraWeb 保存Excel表 招DELPHI软件工程师 各位大侠们,小弟需要帮忙,急急急!~ ! 高手帮忙!indy的pop3收邮件有些问题 SQL Server 的查询分析器用上面的SQL语句,可以实现,但在delphi上面的语句就报错 给Unit改名的问题;很怪! 解释这三个的区别:new、getmem、Allocmem 求字符串压缩函数或例子 各位高手救命,关于打印
要发现一个什么机器,我们可以会这样:先不做内容,我们先做一个外壳,然后把这个外壳拿给客户,对客户说:这就是我们将要做的东东,按钮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
就着样,不知道我说清楚没有
的第一条懂了
第二条没见过