关于定义接口的create方法

Stiven_PFan 2010-12-13 04:59:39
如题,我想给接口定义一个create构造方法,
如下一段代码
type
Imy=interface
procedure Create(a:string);
end

Tmy=class(TInterfacedObject,Imy)
public
procedure Create(a:string);
end;
..
..
procedure TMy.Create(a:string);
begin
...
end;
...
var my:IMy;

..
my := TMy.create('abc'); '这句编译通不过,提示This form of method call only allowed for class methods;
..

想请教大家,如果我要在类中实现接口中定义的构造函数,该怎么办啊,网上关于接口的资料好少。感谢感谢



...全文
105 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Stiven_PFan 2010-12-14
  • 打赏
  • 举报
回复
谢谢两位,懂了
myfirenze 2010-12-13
  • 打赏
  • 举报
回复
是实现该接口的类的实例
var
myobj : Tmy;
myinterface : IMy;
begin
myobj := TMy.Create();
myinterface :=myobj;
end;
myfirenze 2010-12-13
  • 打赏
  • 举报
回复
procedure TMy.Create(a:string);不中类的构造方法,是没有返回值的阿,大哥,
要像楼上那样调用类的构造方法,返回对象的实例,再转化成接口。
要说明一点,接口是没有构造方法的,也用不着构造方法,
要取得接口唯一的方法创建一个实现该接口的对象的实例
bdmh 2010-12-13
  • 打赏
  • 举报
回复
在Tmy中声明create方法,然后创建实例时这样
var
myobj : Imy;
begin
myobj := TMy.Create(...)
end;

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧