我是一名 Java 开发人员,最近被迫戴上 Delphi 开发人员的帽子。
就像在这种情况下的典型情况一样,我最终尝试在 Delphi 中做一些事情,同时仍然使用我的“Java”思维方式,当它们不起作用时我会感到困惑。
今天的问题是接口的概念。在 Java 中,我可以定义一个接口,给它一些方法,然后声明一个实现该接口的类。
我曾尝试在 Delphi 中做同样的事情,但我的手指被烫伤了。我声明了一个扩展 IInterface 的接口。但是在实现该接口时,我遇到了一些未声明的方法(QueryInterface、_AddRef、_Release)的未实现方法错误。
一个小小的 Google 告诉我,我需要扩展 TInterfacedObject 而不是 TObject。这让我感到不安,因为它表明我不能简单地将接口添加到某个第三方类,除非该类最终扩展了 TInterfacedObject。
但是现在,当需要设置我的接口对象 .Free 时,我得到了 EInvalidPointer 异常。
结果,我开始得出结论,接口这个词对 Java 开发人员和 Delphi 开发人员的含义完全不同。
精通两种语言的人可以启发我了解差异吗?
干杯。