私は Java 開発者で、最近 Delphi 開発者の帽子をかぶっています。
このような状況ではよくあることですが、「Java」の考え方を使用しながら Delphi で何かをしようとしてしまい、それらが機能しないと困惑します。
今日の問題は、インターフェイスの概念です。Java では、インターフェイスを定義していくつかのメソッドを与え、後でそのインターフェイスを実装するクラスを宣言できます。
私は Delphi で同じことをしようとしましたが、指を火傷しました。IInterface を拡張したインターフェイスを宣言しました。しかし、そのインターフェイスを実装する段階になると、宣言していないメソッド (QueryInterface、_AddRef、_Release) に対して多数の未実装メソッド エラーが発生しました。
ちょっとした Google から、TObject の代わりに TInterfacedObject を拡張する必要があると言われました。これは、サードパーティ クラスが最終的に TInterfacedObject を拡張しない限り、そのクラスに単純にインターフェイスを追加できないことを示唆しているため、私は不安でした。
しかし、インターフェイス オブジェクト .Free を設定するときが来たら、EInvalidPointer 例外が発生します。
その結果、Java 開発者や Delphi 開発者にとって、インターフェイスという言葉はまったく別のものを意味するという結論に達し始めています。
両方の言語に堪能な人が違いについて教えてくれますか?
乾杯。