Delphi类的继承(100分)

  • 主题发起人 主题发起人 夜中人
  • 开始时间 开始时间

夜中人

Unregistered / Unconfirmed
GUEST, unregistred user!
我想做一个类从TObject继承,其中FTable属性继承TTable,还有其他的类
这样可以吗?还有其他的好方法吗?
 
可以这样.
TYouObj=class(TObject)
private
FTable:TTable
{...}
public
property Table:TTable read TTable;
end;

 
沈前卫:那个孤独求败的问题我想再问你一下(21世纪悬赏)
 
是不是双重继承,Delphi不支持,OOP也不提倡。Delphi只支持从(接口,类)的
"伪"多重继承。沈前卫的方法比较常用
 
我想这个问题不属于多重继承吧
因为夜中人只是要求某个属性继承自TTable
不是要求这个类继承自TTable啊
再说TObject类是任何类的基类
不存在多重继承的问题
沈前卫的方法是可以使用的
也可以
TYouTable=class(TTable)
//这里可以加进你自己的修改
然后将沈兄的程序改动一下
private
FTable:TYouTable;
万事大吉了。

 
FTable属性继承TTable??
没说清楚
 
delphi 不支持多重继承,用属性就可以搞定。
在你的类里面加一个属性,类型为你的类。
 
Delphi 4 Unleashed中说这叫聚合,比多重继承要好,
接口也可以不用"伪"多重继承实现,可以用implements关键字!
 
我自定义的类不仅包含TTable,还会包含Sccket之类的类,如果从TTable直接
继承,是不是不太好?
 
socket 和 table 是两码事,为何要从 TTable 中继承,
如果只是使用的话,就可以直接加进去。
 
我想我已经说得比较清楚了吧
先从TTable继承一个自己的类,
再在你要定义的类里将这个类的对象作为属性
懂?
 
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
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;

 
多人接受答案了。
 
后退
顶部