問題タブ [upcasting]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - アップキャストは静的メソッドに影響しますか?
派生クラスと派生クラスでメソッドを静的として宣言し、アップキャストを行うときに、ベースクラスメソッドを呼び出す理由。
java - Java で子オブジェクトに親参照を割り当てるのはなぜですか?
私は非常に単純な質問をしていますが、これには少し混乱しています。
クラスがあるとしますParent
:
そして別のクラスを持っていますChild
:
そして最後に私の Main.java クラス
次のような子オブジェクトを作成すると
その後、child
オブジェクトは両方のname and salary
変数にアクセスできます。
私の質問は:
name
親クラスの変数のみにアクセスできます。では、この行の正確な用途は何ですか??
また、動的ポリモーフィズムを使用している場合、これを行った後に子クラスの変数にアクセスできないのはなぜですか
c++ - アップキャスト後に派生クラスの仮想メソッドが呼び出されるのはなぜですか?
派生クラスのポインタをアップキャストした後も、派生クラスの仮想メソッドが呼び出されますが、スライスが発生するはずだったので、これは間違っているように思われます。このコードの何が問題になっているのかコメントしていただけますか?
出力:Hello Derived
oop - 「アップキャスト」とは何ですか?
「アップキャスト」という用語が OOP に関連していることはわかりますが、インターネットを検索しても正確な定義を見つけることができません。
この用語の意味と、この手法が役立つ状況を説明できる人はいますか?
java - Java ワイルドカードは型キャストを許可しません
Java コンパイラーが教えてくれますactual argument < anonymous Message< Integer, MainFoo >> cannot be converted to Message< Integer, Foo< ?>> by method invocation conversion
。
なんで?
Message< Integer, Foo< ?>> に変換できるものは何ですか?
c# - 基本クラス型のすべての派生クラス型に対してキャストを試行せずに、アップキャストされたオブジェクトを再度ダウンキャストできますか?
すべてが同じ基本クラスから派生するオブジェクトのコレクションが与えられる場合があります。コレクションを反復処理して各項目の型を確認すると、オブジェクトが派生型であることがわかり、それに応じて処理できます。私が知りたいのは、既に行っていること以外に、派生型のチェックを実行する簡単な方法があるかどうかです。通常、コードの繰り返しは必要ないため、現在の方法論は少しずれているように思えます。
すべての Web サービスが同じ結果タイプを持つ必要がある Web サービスを使用しています。
目標は、必要なだけ多くの異なる種類のメッセージをクライアントに返すことができるようにすることです。Web サービスの呼び出しごとに 1 つのメッセージを取得する代わりに、呼び出し先は 1 回の旅行ですべての間違い/成功を知ることができ、メッセージから特定の情報を解析する文字列を排除できます。
当初はジェネリックを使用することを考えていましたが、Web サービスはさまざまなメッセージ タイプを持つ可能性があるため、ベース メッセージ クラスを使用するようにコレクションが拡張されました。
c# - C#では、明示的なアップキャストを実行する必要がありますか?
B
基本クラスとサブクラスを持つクラス階層が与えられた場合S
:
暗黙の変換でをS
に割り当てることができます:B
これをダウンキャストしたい場合S
は、明示的にこれを行う必要があります。
さて、私の理解では、からS
へB
の割り当ての互換性が常にあることを保証できるので、次のように明示的なアップキャストを実行する必要はありません。
この主張は正しいですか、それとも質問にあるように、明示的なアップキャストを実行する必要がありますか?
java - アップキャストまたは他の方法を使用して、サブクラスからスーパークラスの実装を取得する方法は?
たとえば、サブクラスを使用してスーパークラスの実装を取得する方法を知りたかっただけです。
スーパークラスの実装を取得するためにそれをアップキャストしようとしましたが、役に立ちませんでした
animal1 オブジェクトを使用してスーパークラスの実装を取得するにはどうすればよいですか?
c# - オブジェクトを実際の型にキャストする方法
次のコードを検討してください。
Foo()を呼び出した後、 TestGeneric の T は MyClass2ではなくMyClassになります。valをMyClass2インスタンスとして扱うにはどうすればよいですか? 前もって感謝します。
Upd: オブジェクトがMyClass2 ctorを使用して作成されたことを実際には知りませんが、val.GetType() を呼び出すことでこれを推測できるため、単純なMyClass2は機能しません。
java - Androidフラグメントフレームワーク:アップキャストは機能しません
アクティビティ内のListfragmentに取り組んでいます。アクティビティにネストされたクラスがあります。
しかし、コンパイラはDummySectionFragemtがフラグメントではないと文句を言います
コンパイラからの苦情:タイプの不一致:MainActivity.DummySectionFragmentからFragmentに変換できません
DummySectionFragmentがFragmentを直接拡張するようにすると、それは機能しますが、以前は機能しなかった理由がわかりません。どうやら、DummySectionFragmentはFragmentを拡張するListFragmentを拡張します。これはここでは暗黙のアップキャストであるはずですが、なぜ機能しないのかわかりません:(