接口在传递过程中怎么变化
IA:interface
IB:interface(IA)
IC:interface(IB)
Tasdf:class(IC)
LA: Tasdf;
LIA: IA;
LC := Tasdf.Create;
LIA := LC;
//编译通不过,改为如下就行
LIA := IB(LC);
然后,问问接口的内存模型如何?传递过程中会有哪些处理?
[解决办法]
接口是通过继承来实现其方法,你那样写是不行的.
给你个例子:
申明了一个接口,接口中有一个方法,比如是工作work.
当实现类是软件工程师的时候,它的工作就是编写程序.
当实现类是农民的时候,它的工作就是务农.
而方法同样是work.
使用了面向对象的多态方式.建议你可以看一些关于多态方面的书籍,就很明白了.
[解决办法]
可以看看delphi的帮助,分析下iinterface,TInterfacedObject,就知道了接口的一些原理,概念的理解还是看书较好,内部模型就要看delphi帮助了,有一些讲解。
将一个对象赋值给一个无指向接口会增加对象的引用计数。
将一个对象或接口赋值给一个有指向的接口,会使以前指向的对象减少引用计数,同时增加将要赋值的对象的引用计数。
将一个有指向的接口变量置nil会导致对象引用计数减少。
在delphi里减少,增加都是编译器处理。关键要实现iinterface的方法。
[解决办法]
http://topic.csdn.net/t/20020418/21/658477.html
这个应该能解决你的疑惑
[解决办法]
接口:
是程序间关联或者数据交换的传递规则吧