夜 夜中人 Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-19 #1 我想做一个类从TObject继承,其中FTable属性继承TTable,还有其他的类 这样可以吗?还有其他的好方法吗?
沈 沈前卫 Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-19 #2 可以这样. TYouObj=class(TObject) private FTable:TTable {...} public property Table:TTable read TTable; end;
可以这样. TYouObj=class(TObject) private FTable:TTable {...} public property Table:TTable read TTable; end;
孤 孤独求败 Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-19 #3 沈前卫:那个孤独求败的问题我想再问你一下(21世纪悬赏)
N Nose Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-19 #4 是不是双重继承,Delphi不支持,OOP也不提倡。Delphi只支持从(接口,类)的 "伪"多重继承。沈前卫的方法比较常用
左 左轻侯 Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-19 #5 我想这个问题不属于多重继承吧 因为夜中人只是要求某个属性继承自TTable 不是要求这个类继承自TTable啊 再说TObject类是任何类的基类 不存在多重继承的问题 沈前卫的方法是可以使用的 也可以 TYouTable=class(TTable) //这里可以加进你自己的修改 然后将沈兄的程序改动一下 private FTable:TYouTable; 万事大吉了。
我想这个问题不属于多重继承吧 因为夜中人只是要求某个属性继承自TTable 不是要求这个类继承自TTable啊 再说TObject类是任何类的基类 不存在多重继承的问题 沈前卫的方法是可以使用的 也可以 TYouTable=class(TTable) //这里可以加进你自己的修改 然后将沈兄的程序改动一下 private FTable:TYouTable; 万事大吉了。
S SuperMMX Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-20 #7 delphi 不支持多重继承,用属性就可以搞定。 在你的类里面加一个属性,类型为你的类。
W WuWZY Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-20 #8 Delphi 4 Unleashed中说这叫聚合,比多重继承要好, 接口也可以不用"伪"多重继承实现,可以用implements关键字!
夜 夜中人 Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-20 #9 我自定义的类不仅包含TTable,还会包含Sccket之类的类,如果从TTable直接 继承,是不是不太好?
S SuperMMX Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-20 #10 socket 和 table 是两码事,为何要从 TTable 中继承, 如果只是使用的话,就可以直接加进去。
左 左轻侯 Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-21 #11 我想我已经说得比较清楚了吧 先从TTable继承一个自己的类, 再在你要定义的类里将这个类的对象作为属性 懂?
B buptwqs Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-21 #14 TYouObj=class(TObject) private FTable:TTable {...}public property Table:TTable read TTable; end; construtor create ; destructor destory; ... constructor create; begin inherited create; ftable.create(self); fable.databasename:=... .. destructor destroy; begin ftable.free; ingerited destroy; end; ... ftable. end;
TYouObj=class(TObject) private FTable:TTable {...}public property Table:TTable read TTable; end; construtor create ; destructor destory; ... constructor create; begin inherited create; ftable.create(self); fable.databasename:=... .. destructor destroy; begin ftable.free; ingerited destroy; end; ... ftable. end;
C cheka Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-21 #15 TYouObj=class(TObject) private FTable:TTable private FSocket:TCustomSocket procedure SetTable(myTable:TTable); procedure SetSocket(mySocket:TCustomSocket) {...} public construtor create ;override; destructor destory;override; property Table:TTable read FTable write SetTable; property Socket:TSocket read FSocket write SetSocket; end;
TYouObj=class(TObject) private FTable:TTable private FSocket:TCustomSocket procedure SetTable(myTable:TTable); procedure SetSocket(mySocket:TCustomSocket) {...} public construtor create ;override; destructor destory;override; property Table:TTable read FTable write SetTable; property Socket:TSocket read FSocket write SetSocket; end;