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

968412587

968412587

2016-02-19 18:26

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

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

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

  

  IInterface1 = interface
  end;

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

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

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

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

  
  首先,编译器不承认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 的驱动程序,由于数据库类别的不同,将有不同的实现。

展开更多 50%)
分享

猜你喜欢

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

编程语言 网络编程
delphi的接口的意义是不是跟C++和Java的不同呢

C++类和接口的设计原则探讨

编程语言 网络编程
C++类和接口的设计原则探讨

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Java的类和接口

编程语言 网络编程
Java的类和接口

Java程序与C语言的接口

Java JAVA基础
Java程序与C语言的接口

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

C++中抽象类和接口的区别介绍

编程语言 网络编程
C++中抽象类和接口的区别介绍

Delphi的接口陷阱

编程语言 网络编程
Delphi的接口陷阱

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

在winnt以上版本中对打印机纸张的动态设置方法

在winnt以上版本中对打印机纸张的动态设置方法

如何用VB在桌面建立快捷方式

如何用VB在桌面建立快捷方式
下拉加载更多内容 ↓