タグ付けされた質問 「interface」

インターフェースは、コンポーネントとの相互作用の指定されたポイントを指します。インターフェイスは、ハードウェアレベルとソフトウェアレベルの両方で適用できます。---これは、Java、C#、および同様の言語での単一継承の唯一の例外である、言語要素の「インターフェース」も指します。

6
C#-タイプList <Product>を暗黙的にList <IProduct>に変換できません
私はすべてのインターフェース定義 を含むプロジェクトを持っています:RivWorks.Interfaces 私は具体的な実装を定義するプロジェクトを持っています:RivWorks.DTO 私は以前に何百回もこれを行ったことがありますが、何らかの理由でこのエラーが発生しています: タイプ「System.Collections.Generic.List &lt;RivWorks.DTO.Product&gt;」を「System.Collections.Generic.List &lt;RivWorks.Interfaces.DataContracts.IProduct&gt;」に暗黙的に変換することはできません インターフェース定義(短縮): namespace RivWorks.Interfaces.DataContracts { public interface IProduct { [XmlElement] [DataMember(Name = "ID", Order = 0)] Guid ProductID { get; set; } [XmlElement] [DataMember(Name = "altID", Order = 1)] long alternateProductID { get; set; } [XmlElement] [DataMember(Name = "CompanyId", Order = 2)] Guid CompanyId …

6
デリゲートをインターフェイスに追加する方法C#
クラスに何人かの代表者が必要です。 インターフェイスを使用して、これらのデリゲートを設定するように「通知」します。 方法? 私のクラスは次のようになります: public class ClsPictures : myInterface { // Implementing the IProcess interface public event UpdateStatusEventHandler UpdateStatusText; public delegate void UpdateStatusEventHandler(string Status); public event StartedEventHandler Started; public delegate void StartedEventHandler(); } これらのデリゲートを強制するインターフェイスが必要です。 public interface myInterface { // ????? }

5
PHP 7インターフェース、戻り値の型のヒントと自己
更新:PHP 7.4は、この質問で提起された主要な問題に対処する共分散と反変性をサポートするようになりました。 PHP 7で戻り値の型のヒントを使用する際に問題が発生しました。私の理解では、ヒント: selfとは、実装クラスがそれ自体を返すことを意図していることを意味します。したがって: self、インターフェイスでそれを示すために使用しましたが、実際にインターフェイスを実装しようとすると、互換性エラーが発生しました。 以下は、私が遭遇した問題の簡単なデモンストレーションです。 interface iFoo { public function bar (string $baz) : self; } class Foo implements iFoo { public function bar (string $baz) : self { echo $baz . PHP_EOL; return $this; } } (new Foo ()) -&gt; bar ("Fred") -&gt; bar ("Wilma") -&gt; bar …

7
Eclipseで特定のインターフェースを実装しているクラスを見つける方法は?
多くの依存関係を持つアプリケーションをJARファイルとして持っています。何らかの理由で、ライブラリの1つを逆コンパイルしてEclipseで開く必要があります。プロジェクトの特定のインターフェースについて、それを実装するクラスを見つける方法はありますか?インターフェイスがまだ逆コンパイルしていない他のライブラリに実装されていた可能性があります。この種のクラスでこれを行うことは可能ですか?


2
'instanceof'演算子は、インターフェイスとクラスでは動作が異なります
instanceofJava での演算子の以下の動作について知りたいのですが。 interface C {} class B {} public class A { public static void main(String args[]) { B obj = new B(); System.out.println(obj instanceof A); //Gives compiler error System.out.println(obj instanceof C); //Gives false as output } } なぜそうなのですか?そこの間には関係ありませんinterface Cとはclass B、しかし、の場合には、一方、それは偽与えobj instanceof A、それコンパイラエラーを与えますか?

7
Java-インターフェース実装でのメソッド名の衝突
2つのインターフェースがあり、どちらも目的がまったく異なりますが、メソッドの署名が同じである場合、両方のインターフェースに役立つ単一のメソッドを記述したり、メソッドに複雑なロジックを記述したりせずに、クラスに両方を実装させるにはどうすればよいですか?呼び出しが行われているオブジェクトのタイプをチェックし、適切なコードを呼び出す実装? C#では、これは明示的なインターフェイス実装と呼ばれるものによって克服されます。Javaに同等の方法はありますか?

14
Javaの抽象クラスとインターフェイス
私は質問をされました、私は私の答えをここでレビューしてもらいたいと思いました。 Q:インターフェースを実装するよりも、抽象クラスを拡張する方が適切なシナリオはどれですか? A:テンプレートメソッドデザインパターンを使用している場合。 私は正しいですか? 質問を明確に述べることができなかった場合は申し訳ありません。 抽象クラスとインターフェイスの基本的な違いを知っています。 1)特定の操作(メソッドの実装)ではすべてのサブクラスに同じ機能を実装し、他のいくつかの操作(メソッドシグネチャのみ)では異なる機能を実装する必要がある場合は、抽象クラスを使用します 2)インターフェースの実装に準拠できるように、署名を同じ(および実装が異なる)にする必要がある場合は、インターフェースを使用します 3)最大1つの抽象クラスを拡張できますが、複数のインターフェースを実装できます 質問を繰り返します:上記のシナリオ以外に、特に抽象クラスを使用する必要があるシナリオはありますか(テンプレートメソッドのデザインパターンは概念的にこれのみに基づいていることがわかります)? インターフェイスと抽象クラス これら2つのどちらを選択するかは、実際には何をしたいかによって異なりますが、幸いなことに、ErichGammaは私たちを少し助けてくれます。 常にトレードオフがありますが、インターフェイスは基本クラスに関して自由を与え、抽象クラスは後で新しいメソッドを追加する自由を与えます。–エーリヒ・ガンマ コード内の他の多くのものを変更せずにインターフェイスに移動して変更することはできないため、これを回避する唯一の方法は、まったく新しいインターフェイスを作成することです。これは必ずしも良いことではない場合があります。 Abstract classes主に密接に関連するオブジェクトに使用する必要があります。Interfaces無関係なクラスに共通の機能を提供するのに優れています。

2
暗黙的なインターフェース変数のコンパイラー処理は文書化されていますか?
少し前に、暗黙のインターフェイス変数について同様の質問をしました。 この質問の原因は、コンパイラによって作成された暗黙のインターフェイス変数の存在を認識していなかったため、コードのバグでした。この変数は、それを所有するプロシージャが終了したときに確定されました。これにより、変数の存続期間が予想よりも長くなるため、バグが発生しました。 これで、コンパイラの興味深い動作を説明する簡単なプロジェクトができました。 program ImplicitInterfaceLocals; {$APPTYPE CONSOLE} uses Classes; function Create: IInterface; begin Result := TInterfacedObject.Create; end; procedure StoreToLocal; var I: IInterface; begin I := Create; end; procedure StoreViaPointerToLocal; var I: IInterface; P: ^IInterface; begin P := @I; P^ := Create; end; begin StoreToLocal; StoreViaPointerToLocal; end. StoreToLocalあなたが想像するようにコンパイルされます。I関数の結果であるローカル変数は、暗黙のvarパラメーターとしてに渡されますCreate。片付けを行うStoreToLocalと、への呼び出しが1回になりますIntfClear。そこに驚きはありません。 ただし、StoreViaPointerToLocal扱いは異なります。コンパイラは、に渡す暗黙のローカル変数を作成しCreateます。にCreate戻ると、への割り当てP^が実行されます。これにより、インターフェイスへの参照を保持する2つのローカル変数がルーチンに残ります。片付けを行うStoreViaPointerToLocalと、への呼び出しが2回行われIntfClearます。 のコンパイル済みコードStoreViaPointerToLocalは次のようになります。 ImplicitInterfaceLocals.dpr.24: …

2
C#の共変および反変インターフェースを理解する
C#で読んでいる教科書でこれらに出くわしましたが、おそらく文脈が不足しているために、理解するのに苦労しています。 それらが何であるか、そしてそれらがそこに何のために役立つかについての良い簡潔な説明はありますか? 明確にするために編集: 共変インターフェース: interface IBibble&lt;out T&gt; . . 反変インターフェース: interface IBibble&lt;in T&gt; . .

10
iPhoneアプリ用の既製のカレンダーコントロールはありますか?[閉まっている]
閉まっている。この質問は、StackOverflowのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善したいですか?質問を更新して、StackOverflowのトピックになります。 4年前に閉鎖されました。 この質問を改善する 今後および過去のイベントを表示するiPhone用のアプリケーションを構築しています。リストビューに落ち着きましたが、カレンダー(組み込みのカレンダーアプリケーションの「月」ビューに表示されるものと同じように)が最適であることに気付きました。 ただし、iPhoneのヒューマンインターフェイスガイドラインでは、カレンダーではなく日付ピッカーについて言及しているだけなので、すぐに使えるようなものはないと思います。本当?もしそうなら、誰かが使用できるサードパーティのコントロールを知っていますか?(自分で書くこともできますが、これは元のプロジェクト計画からの逸脱であるため、準備ができているものを手に入れたいと思います)。

8
JDK 8のデフォルトは、Javaの多重継承の一形態ですか?
JDK 8の新機能により、バイナリ互換性を維持しながら既存のインターフェースに追加できます。 構文は次のようなものです public interface SomeInterface() { void existingInterface(); void newInterface() default SomeClass.defaultImplementation; } このようにしてSomeInterface、この新しいバージョンにアップグレードするときの既存のすべての実装で、突然コンパイルエラーが発生することはありませんnewInterface()。 これは素晴らしいことですが、実装しなかった新しいデフォルトのメソッドを両方とも追加した2つのインターフェイスを実装するとどうなりますか?例を挙げて説明しましょう。 public interface Attendance { boolean present() default DefaultAttendance.present; } public interface Timeline { boolean present() default DefaultTimeline.present; } public class TimeTravelingStudent implements Attendance, Timeline { } // which code gets called? new TimeTravelingStudent().present(); これはJDK8の一部として定義されていますか? …

8
HashSetとSetの違いは何ですか?
次のようなコードスニペットを見ました Set&lt;Record&gt; instances = new HashSet&lt;Record&gt;(); ハッシュセットは特別な種類のセットなのかしら。それらの間に何か違いはありますか?
83 java  interface  set 

4
PHPトレイトがインターフェースを実装できないのはなぜですか?
なぜPHPトレイト(PHP 5.4)がインターフェースを実装できないのか疑問に思います。 user1460043の回答からの更新=&gt; ...特定のインターフェースを実装するためにそれを使用するクラスを要求することはできません を実装しているClass AaTrait Tを使用している場合、間接的に実装する必要があるinterface Iよりも、人々が考える可能性があるため、それは明らかである可能性があることを理解しています(これは、トレイトメソッドの名前を変更できるため真実ではありません)。Class Ainterface IClass A 私の場合、私の特性は、特性を使用するクラスが実装するインターフェースからメソッドを呼び出すことです。 特性は、実際にはインターフェースのいくつかのメソッドの実装です。だから、私は自分の特性を使用したいすべてのクラスがインターフェースを実装しなければならないコードで「設計」したいと思います。これにより、Traitはインターフェイスで定義されたクラスメソッドを使用し、それらがクラスに存在することを確認できます。
82 php  oop  interface  traits 

3
.hファイルと.mファイルの@interface定義の違い
通常は使用します @interface interface_name : parent_class &lt;delegates&gt; { ...... } @end .hファイルと.mファイルのメソッドは、.hファイルで宣言された変数のプロパティを合成します。 ただし、一部のコードでは、この@interface ..... @endメソッドは.mファイルにも保持されます。どういう意味ですか?それらの違いは何ですか? また、.mファイルで定義されているインターフェイスファイルのゲッターとセッターについても説明します。 前もって感謝します

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.