国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C++ > 正文

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

2019-11-18 18:05:15
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
 

fellow99說(shuō): delphi的接口的意義是不是跟C++和java的不同呢?

delphi的接口的意義是不是跟C++和Java的不同,怎么我這樣不行的呢:

IInterface1 = interface
end;

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

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


首先,編譯器不承認(rèn)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;

想想沒(méi)有道理, kbs說(shuō)在D7中是可以的,我決定在D5中試一試。

試驗(yàn)的結(jié)果是,在D5中第一個(gè)問(wèn)題是不存在的,第二個(gè)問(wèn)題的,改 obj 的聲明為:
var
  obj: TClass1;

就可以了。因?yàn)門Object 是不能 as 為 IInterface2 的,因?yàn)樗亩x中并沒(méi)有從 IInterface2 繼承。

據(jù)我看來(lái),接口的意義不僅體現(xiàn)在語(yǔ)法上,更多的是應(yīng)用方式:聲明功能而不是實(shí)現(xiàn),可以有各種不同的實(shí)現(xiàn)。應(yīng)用的場(chǎng)合是有預(yù)想到的多個(gè)實(shí)現(xiàn)。如 ADO、dbExpress、JDBC 的驅(qū)動(dòng)程序,由于數(shù)據(jù)庫(kù)類別的不同,將有不同的實(shí)現(xiàn)。


上一篇:C++與C#混合生成.NET程序

下一篇:Delphi與C++之間通過(guò)實(shí)現(xiàn)函數(shù)與對(duì)象共享

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
學(xué)習(xí)交流
熱門圖片

新聞熱點(diǎn)

疑難解答

圖片精選

網(wǎng)友關(guān)注

主站蜘蛛池模板: 开平市| 东宁县| 江西省| 巴林右旗| 太谷县| 杂多县| 大理市| 普兰店市| 綦江县| 山西省| 张掖市| 新疆| 农安县| 稻城县| 兴化市| 邻水| 兖州市| 景洪市| 崇左市| 罗山县| 滦平县| 清流县| 沐川县| 和林格尔县| 台北市| 长宁区| 潼南县| 大竹县| 黔西县| 民勤县| 夏津县| 庄河市| 平阳县| 晋城| 云梦县| 唐海县| 修武县| 佛学| 泽州县| 深泽县| 常熟市|