私は抽象的であったのと同じように、インターフェイスの行為のメンバーを知っていますが、実際は抽象的ですか?私はそのキーワードを使用する必要はないので、その暗黙的であるのか、それとも技術的に抽象的でないのか分かりません...インターフェイスメンバは抽象化されていますか?
2
A
答えて
5
これらは抽象的なものではなく、インタフェースによって定義されたコントラクトです。 「抽象」はクラスにのみ適用される特定の意味を持ちます。
これは、クラス内の抽象メンバと非常によく似た働きをします。インターフェイスを実装するすべての型は、メンバを実装するか、抽象的なものでなければなりません。
0
これらのキーワードは暗黙のうちに定義されているため、メンバーの署名のみが記述されます。
私はILでどのように見えるかわかりません(実際には知る必要はないでしょう)。
2
インターフェイスを実装するクラスは、すべてのメンバーを実装するか、またはabstract
と宣言する必要があるため、これらは抽象概念です。
abstract
のように、技術的な意味ではabstract
ではありません。
2
いいえ。抽象メソッドは暗黙的に仮想です。
インターフェイスの実装は仮想である必要はありません。
( は実際には、これは、vtable single dispatch
[1]、単一のvtableスロットは二回充填することができないためでは可能ではないであろう。明示的に「競合」インターフェース同じ部材シグネチャを宣言する(すなわち、インタフェース)を実装することが可能です)
[1]仮想継承のための古典的な実装方法
関連する問題
- 1. オペレーティングシステムは抽象化されていますか?
- 2. 抽象化で隠れているものは何ですか?
- 3. 抽象クラスはC#で実装されていますか?
- 4. Androidはデバイスアーキテクチャを抽象化していますか?
- 5. 抽象化またはカプセル化?
- 6. タイプクラスを抽象化できますか?
- 7. データベース抽象化 - オプションは何ですか?
- 8. Delphiの抽象化
- 9. Pythonの抽象化
- 10. サービス抽象化springMVC
- 11. React.jsの抽象化
- 12. Pythonの抽象化?
- 13. ケースクラスの抽象化
- 14. ValueObjectの抽象化
- 15. インタフェースと抽象化
- 16. データ抽象化またはJava用データコネクタフレーム
- 17. 抽象データベースシステムに抽象データを格納しています
- 18. 抽象クラスを抽象クラスで模擬しています
- 19. 抽象クラスのオブジェクトは許可されていません
- 20. サンプルRubyコード、これをどのように抽象化していますか?
- 21. エンティティフレームワークよりも優れたリポジトリ抽象化を使用していますか?
- 22. 抽象クラス抽象クラスBの新しいインスタンスをインスタンス化できません
- 23. だから私は、この抽象クラスを持つ抽象変数の変化
- 24. これは抽象クラスのインスタンス化ですか?
- 25. Springの環境抽象化はPropertyEditorsを使用していますか?
- 26. LINQのデータコンテキストの抽象化
- 27. Python - 抽象クラスのサブクラス化
- 28. スカラのコード抽象化
- 29. コアデータフェッチ要求の抽象化
- 30. Express JS Routerミドルウェア抽象化
+1。良い呼び出し、それは重要な区別です。実際には、派生クラスが親クラスに実装されたインタフェースを再実装するところで、競合する*実装*を実装することもできます。喜びが続く。 –
あまりにも真実。しかし、明示的なインタフェースの実装では、クライアントは通常、彼が知るIInterestingInterfaceしか取得しないので、クライアントはそれを知りません。 IMHOの明示的なインターフェイスは、少し古いものになっています:私は、クラスでそれらを使用する必要があることを感じました_closures_(3.5で修正された)またはJavaスタイルの非静的な内部(_nested_)クラス。 ..ああ、私たちが見逃していた喜びは、Enumerables、Queryables、Observablesの間の混乱によって大きく相殺されます。Observablesはすべて微妙に異なり、新しい陽気な意味の驚きを作り出します。将来の証拠! – sehe