一段关于接口的代码,不明白请大家帮看看?

时间:2022-07-13 02:43:48
一个接口
type
['{............}']//TGUID
IFormattedNumber=interface
function FormattedString:string;
............
end;
一个接口类
type
TFormattedInteger=Class(Tobject,IFormattedNumber)
private
.........
public
constructor Create(AValue:integer);
.....
function formattedstring:string;
procedure Setvalue(AValue:integer);
end;
有如下代码:
////
var
MyNumber:IFormattedNumber;
begin
MyNumber:=TFormattedInteger.create(12);
end;
问题如下:
1.IFormattedNumber与TFormattedInteger中的function formattedstring:string是不是同一个涵数;
我想应该是不同的两个涵数,如果是同一个在TFormattedInteger中就不应该在定义.是不是?
2.MyNumber:=TFormattedInteger.create(12)这句有何作用
我想Mynumber既然是IFormattedNumber类它就只能访问IFormattedNumber中的元素跟TFormattedInteger就无关,是不是?;

8 个解决方案

#1


是一个函数,要么怎么叫接口

#2


1.在你这里是,也可以不是,因为接口并不实现任何功能,谁实现它,它就是谁
2.创建类的实例,由它来实现接口,接口和实现接口的类有关

接口只是调用方法的约定
接口需要类来实现,光一个接口就是个架子,没有实体是不能做任何事的

#3


to  ysai(所有真的都是假的真,所有假的都是真的假) ( ) 
如果我把MyNumber:=TFormattedInteger.create(12);去掉
换成showmessage(MyNumber.formattedstring);行吗?

#4


不行
因为没有实现的接口,就是个框框,没有内容,它不能干任何事
接口的功能要依赖对象来实现

#5


to  ysai(所有真的都是假的真,所有假的都是真的假)  
---------------------------------------------
可MyNumber就是一个由IFormattedNumber定义的对象啊?

#6


ysai(所有真的都是假的真,所有假的都是真的假) ( ) :"接口的功能要依赖对象来实现".学习中
to :yhyhai() :你的概念有问题,多看看书,好象很多东西都没弄清楚.
对象必须要创建,在delphi里就是create来实现
你不创建可以试试,后果是什么样,你试了后就知道了

#7


除了某些数据类型不用创建(只要定义就好了),delphi是自己进行管理的,大部分是要创建对象的

#8


to  dd_zhouqian() ( )  
好象从Tobject继承的自定义类不用创建(create)对象实列也能使用这是为什么呢?真让人搞不懂?
具体列子http://community.csdn.net/Expert/topic/5601/5601084.xml?temp=.8821375;

#1


是一个函数,要么怎么叫接口

#2


1.在你这里是,也可以不是,因为接口并不实现任何功能,谁实现它,它就是谁
2.创建类的实例,由它来实现接口,接口和实现接口的类有关

接口只是调用方法的约定
接口需要类来实现,光一个接口就是个架子,没有实体是不能做任何事的

#3


to  ysai(所有真的都是假的真,所有假的都是真的假) ( ) 
如果我把MyNumber:=TFormattedInteger.create(12);去掉
换成showmessage(MyNumber.formattedstring);行吗?

#4


不行
因为没有实现的接口,就是个框框,没有内容,它不能干任何事
接口的功能要依赖对象来实现

#5


to  ysai(所有真的都是假的真,所有假的都是真的假)  
---------------------------------------------
可MyNumber就是一个由IFormattedNumber定义的对象啊?

#6


ysai(所有真的都是假的真,所有假的都是真的假) ( ) :"接口的功能要依赖对象来实现".学习中
to :yhyhai() :你的概念有问题,多看看书,好象很多东西都没弄清楚.
对象必须要创建,在delphi里就是create来实现
你不创建可以试试,后果是什么样,你试了后就知道了

#7


除了某些数据类型不用创建(只要定义就好了),delphi是自己进行管理的,大部分是要创建对象的

#8


to  dd_zhouqian() ( )  
好象从Tobject继承的自定义类不用创建(create)对象实列也能使用这是为什么呢?真让人搞不懂?
具体列子http://community.csdn.net/Expert/topic/5601/5601084.xml?temp=.8821375;