delphi的接口的意义是不是跟C++和Java的不同呢

2016-02-19 18:26 20 1 收藏

今天天气好晴朗处处好风光,好天气好开始,图老师又来和大家分享啦。下面给大家推荐delphi的接口的意义是不是跟C++和Java的不同呢,希望大家看完后也有个好心情,快快行动吧!

【 tulaoshi.com - 编程语言 】

 

fellow99说:!--StartFragment -- delphi的接口的意义是不是跟C++和Java的不同呢?

delphi的接口的意义是不是跟C++和Java的不同,怎么我这样不行的呢:

  

  IInterface1 = interface
  end;

  IInterface2 = interface(IInterface1)
    procedure method();
  end;

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  TClass1 = class(TInterfacedObject, IInterface2)
  ......
  end;

  
  首先,编译器不承认TClass1是IInterface1的派生,一定要写成TClass1 = class(TInterfacedObject, IInterface2, IInterface1)才可以。

  接着,这样子也不行:
  function xxx(): IInterface2;
  var
     obj: TObject;
  begin
     obj := TClass1.Create;
     result := obj as IInterface2; //不行
     result := IInterface2(obj); //也不行
  end;

  想想没有道理,!--StartFragment -- kbs说在D7中是可以的,我决定在D5中试一试。
  
  试验的结果是,在D5中第一个问题是不存在的,第二个问题的,改 obj 的声明为:
  var
    obj: TClass1;

  就可以了。因为TObject 是不能 as 为 IInterface2 的,因为它的定义中并没有从 IInterface2 继承。
  
  据我看来,接口的意义不仅体现在语法上,更多的是应用方式:声明功能而不是实现,可以有各种不同的实现。应用的场合是有预想到的多个实现。如 ADO、dbExpress、JDBC 的驱动程序,由于数据库类别的不同,将有不同的实现。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

来源:http://www.tulaoshi.com/n/20160219/1617668.html

延伸阅读
在面向对象的程序设计中,有经常接触类、对象等专业名词;到底什么是类、什么是对象呢?在程序又是怎样运用呢?类是面向对象程序设计的核心,它实际是一种新的数据类型,也是实现抽象类型的工具,因为类是通过抽象数据类型的方法来实现的一种数据类型。类是对某一类对象的抽象;而对象是某一种类的实例,因此,类和对象是密切相关的。没有...
接口 某些时候,让不相关的类分享一组公有成员,以便产生相同的行为,是非常有用的。一个最基本的方法可能是通过一个公共的基类来定义它们,但这种方法太受局限,因为它要求这些类通过继续而互相关联,另外,它们也许还有着各自的基类,且CLI类型只支持单一类继续。 C++/CLI提供了一种方法,可利用多个类实现一组通用的功能,...
先看下面的程序: 代码如下: void main() {     int a = 100;     int *ap = &a;     printf("%p\n",&a);//输出:002AF744     printf("%p\n",ap);//输出:002AF744     printf("%d\n",*ap);//输出:100     printf("%p\n",&ap);//输出...
红葱头的作用都有什么? 红葱头式中餐烹调中不可或缺的增加香气的食材之一,将这种材料切碎以后,用猪肉类的肉爆炒以后非常好吃。同时他也有,清热解毒,散瘀消肿,止血的功能。如果患有风湿性关节炎的话,可以先全草水煎外洗。如果身体部位有跌打肿痛,暗疮这情况也可以直接捣烂外敷。除此之外,如果出现吐血,闭经腹痛等情况的时候。当然...
Java跨平台的特性使Java越来越受开发人员的欢迎,但也往往会听到不少的抱怨:用Java开发的图形用户窗口界面每次在启动的时候都会跳出一个控制台窗口,这个控制台窗口让本来非常棒的界面失色不少。怎么能够让通过Java开发的GUI程序不弹出Java的控制台窗口呢?其实现在很多流行的开发环境例如JBuilder、Eclipse都是使用纯Java开发的集成环境...

经验教程

347

收藏

17
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部