でAbstractSetのメソッドに相当します。 Set
にキャストした場合、Set
の実装クラスのすべてがAbstractCollection
から直接的または間接的に継承されることを考慮しても差はありません。これには特別な理由はありますか? Linkは、私が<code>AbstractSet</code>で<code>equals</code>方法は<code>Collection</code>代わりの<code>Set</code>にオブジェクト<code>o</code>を型キャストする理由を知って好奇心のJava
0
A
答えて
2
意味上の相違がないものとします。キャストに
Set
ではなくCollection
を使用することは、具体的には最小のタイプを使用するという原則のためです(Set<Foo> fooSet = new HashSet<>();
などの宣言と同じ原則)。Collection
のメソッドのみが必要なので、Collection
にキャストします。ただし、これはJLSで定義されていない重要な実装の詳細です。(削除質問)インターフェイスは、特定の動作(メソッド)がすべての実装に存在する必要があることを示しています。インタフェースが実装されているだけでなく、この動作を提供する抽象クラスをクラスが継承している場合、クラスには必要な動作が存在するため、これは問題ありません。実際の実装は抽象クラスから派生しています。
関連する問題
- 1. <代わりに&LT
- 2. ストリーム<Object>の代わりに<Set<Object>>
- 3. 代替は「<<<」魚
- 4. クラス<?>をクラス<T>にキャストする方法は?
- 5. <head><head>の代わりに<head>の内容が<body>にあります。
- 6. リストの代わりに<T>を読んで返す方法<T>
- 7. javascript-のWebRTCは、代わりに<li></li>
- 8. は<code>id</code>からを使用しての</p> <pre><code>/users/:id # eg. /users/7 </code></pre> <p>代わりに、私は、URLを使用して私のアプリに任意のユーザー」オブジェクトの<code>show</code>ページを表示することができます
- 9. 理由はstd ::動きはちょうど私がおよそ<code>std::move</code></p> <p><code>std::move</code>を理解するもの確認する代わりにlvaue参照の
- 10. は、私はDTYPEオブジェクト<code>e</code>を持って
- 11. どのように読んで、私は2行が</p> <ul> <li>のHello Worldを好き1.</li> <li>のHello World 2</li> </ul> <p>Iを含むテキストファイルを持っているのjava
- 12. <xsd:enumeration>の代わりに<xsd:choice>を使用するスキーマがある理由
- 13. それでは、私は、このリンクの代わりにリンク</p> <pre><code><a href="http://URL"></a> </code></pre> <p>を持っているとしましょうJavascriptの
- 14. C++ - nullptr_tがint *に代入されないのはなぜですか? <strong>は0 1</strong></p> <p>私は最初のチェックは<strong>が偽</strong></p> <p>私は</em>をポインタへ<em>参照に<strong>nullptr</strong>を割り当てることができ返す理由を理解していないが、私:
- 15. なぜJavaで</p> <p>現在、HashMapの::私は私の心に疑いを持っている
- 16. ユニティ:私は<code>IJob</code>インターフェースに由来する2つのclases <code>Job1</code>と<code>Job2</code>を持って
- 17. cat << EOFの代わりに<< EOFを使用してみませんか?
- 18. 雄弁は、私は、オブジェクトが<strong>カテゴリ</strong>と<strong>サブカテゴリ</strong>を持って<strong>写真<strong>オブジェクト</strong>の</strong>を、アップロード<strong>ユーザー</strong>を持っている特定のオブジェクトを撮影することを目標に、オンラインの競争のためにWHERE文の
- 19. は、私は、このLinuxのコマンドは、私はそれが<strong>OD -c</strong>に<strong>LS</strong>を送信しています知っている</p> <pre><code>ls | od -c </code></pre> <p>を行うかを理解しようとしている
- 20. 私は<code>applicationWillTerminate</code>方法に<code>NSURLConnection</code>経由<code>NSURLRequest</code>を送信しようとしているapplicationWillTerminate
- 21. 私は、私は、すべてのメソッドとしてそれを解決する方法がわからない、このエラーを取得しますが午前理由を知り</p> <blockquote> <p>Uncaught SyntaxError: Unexpected token)</p> </blockquote> <p>を取得しています私のコンソールでエラー
- 22. 私は</p> <pre><code>instance.GetType().GetGenericTypeDefinition() == typeof(Dictionary<,>) </code></pre> <p>が真である<code>instance</code>するオブジェクトを持って、その型
- 23. アンドロイドマルチビューを取得し、私はちょうど私がこれだけ</p> <pre><code>TextView m = (TextView)findViewById(R.id.mm); </code></pre> <p>を知ってJavaScriptで</p> <pre><code>Document.getElementsByClassName() </code></pre> <p>これに等価性をequalitiveどの知りたい
- 24. は、私は<strong>式以下があり</strong>オブジェクトを持っているのjava
- 25. 条件引数のどこにRails ActiveRecordを繰り返さないのは可能ですか?</p> <pre><code>Things.where('blahs.foo_id = ? OR bar_id = ?', user.id, user.id) </code></pre> <p>私は<code>user.id</code>は2 <code>?</code>年代の代わりに使用することにしたい:
- 26. Java RESTサービス、リストの代わりにリスト<String>を取得<Object>
- 27. `IEnumerable <Unknown T>`を `IEnumerable <Whatever>`にキャストする方法
- 28. オブジェクトは、私は自分のアプリケーションで<code>infragistics</code><code>igGrid</code>を使用しているが、私は</p> </blockquote>「_super」プロパティまたはメソッドをサポートしていません<code>javascript</code>エラー</p> <blockquote> <p>オブジェクトを取得しています<p>igGrid
- 29. lambdaがcvとrefを削除するのはなぜですか?</p> <pre><code>auto f = [](const T& var){ return var; }; </code></pre> <p><code>f</code>の戻り値の型が<code>T</code>(ない<code>const T&</code>)である理由:
- 30. は、私がどのCライブラリのインタフェース午前C.</p> <p>に<code>void*</code>に<code>char*</code>をキャストに相当します<code>System.Adress</code>に「キャスト」エイダ<code>String</code>をする良い方法は何ですか*
投稿ごとに1つの質問にすると、本当にうまく機能します。あなたは#1がどうなるべきかを示す短いプログラムを作ることができますか? – Teepeemm
#2:抽象クラスはインタフェースメソッドの実装を提供します。 – bcsb1001
どちらの質問も、Javaでのクラス継承とインターフェイス実装の理解をはっきりとはっきりと理解していないことに基づいています。私はあなたがその主題を代わりに読むべきだと思います。簡単な説明:1 - 違いは無関係、2 - メソッドはAbstractCollectionクラスから継承され、Setインタフェースから継承されません。 – jarnbjo