問題タブ [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.

0 投票する
3 に答える
541 参照

java - アップキャストは静的メソッドに影響しますか?

派生クラスと派生クラスでメソッドを静的として宣言し、アップキャストを行うときに、ベースクラスメソッドを呼び出す理由。

0 投票する
11 に答える
151454 参照

java - Java で子オブジェクトに親参照を割り当てるのはなぜですか?

私は非常に単純な質問をしていますが、これには少し混乱しています。

クラスがあるとしますParent

そして別のクラスを持っていますChild:

そして最後に私の Main.java クラス

次のような子オブジェクトを作成すると

その後、childオブジェクトは両方のname and salary変数にアクセスできます。

私の質問は:

name親クラスの変数のみにアクセスできます。では、この行の正確な用途は何ですか??

また、動的ポリモーフィズムを使用している場合、これを行った後に子クラスの変数にアクセスできないのはなぜですか

0 投票する
2 に答える
1499 参照

c++ - アップキャスト後に派生クラスの仮想メソッドが呼び出されるのはなぜですか?

派生クラスのポインタをアップキャストした後も、派生クラスの仮想メソッドが呼び出されますが、スライスが発生するはずだったので、これは間違っているように思われます。このコードの何が問題になっているのかコメントしていただけますか?

出力:Hello Derived

0 投票する
1 に答える
7731 参照

oop - 「アップキャスト」とは何ですか?

「アップキャスト」という用語が OOP に関連していることはわかりますが、インターネットを検索しても正確な定義を見つけることができません。

この用語の意味と、この手法が役立つ状況を説明できる人はいますか?

0 投票する
1 に答える
4030 参照

java - Java ワイルドカードは型キャストを許可しません

Java コンパイラーが教えてくれますactual argument < anonymous Message< Integer, MainFoo >> cannot be converted to Message< Integer, Foo< ?>> by method invocation conversion

なんで?

Message< Integer, Foo< ?>> に変換できるものは何ですか?

0 投票する
4 に答える
227 参照

c# - 基本クラス型のすべての派生クラス型に対してキャストを試行せずに、アップキャストされたオブジェクトを再度ダウンキャストできますか?

すべてが同じ基本クラスから派生するオブジェクトのコレクションが与えられる場合があります。コレクションを反復処理して各項目の型を確認すると、オブジェクトが派生型であることがわかり、それに応じて処理できます。私が知りたいのは、既に行っていること以外に、派生型のチェックを実行する簡単な方法があるかどうかです。通常、コードの繰り返しは必要ないため、現在の方法論は少しずれているように思えます。


すべての Web サービスが同じ結果タイプを持つ必要がある Web サービスを使用しています。

目標は、必要なだけ多くの異なる種類のメッセージをクライアントに返すことができるようにすることです。Web サービスの呼び出しごとに 1 つのメッセージを取得する代わりに、呼び出し先は 1 回の旅行ですべての間違い/成功を知ることができ、メッセージから特定の情報を解析する文字列を排除できます。

当初はジェネリックを使用することを考えていましたが、Web サービスはさまざまなメッセージ タイプを持つ可能性があるため、ベース メッセージ クラスを使用するようにコレクションが拡張されました。

0 投票する
2 に答える
472 参照

c# - C#では、明示的なアップキャストを実行する必要がありますか?

B基本クラスとサブクラスを持つクラス階層が与えられた場合S

暗黙の変換でをSに割り当てることができます:B

これをダウンキャストしたい場合Sは、明示的にこれを行う必要があります。

さて、私の理解では、からSBの割り当ての互換性が常にあることを保証できるので、次のように明示的なアップキャストを実行する必要はありません。

この主張は正しいですか、それとも質問にあるように、明示的なアップキャストを実行する必要がありますか?

0 投票する
2 に答える
200 参照

java - アップキャストまたは他の方法を使用して、サブクラスからスーパークラスの実装を取得する方法は?

たとえば、サブクラスを使用してスーパークラスの実装を取得する方法を知りたかっただけです。

スーパークラスの実装を取得するためにそれをアップキャストしようとしましたが、役に立ちませんでした

animal1 オブジェクトを使用してスーパークラスの実装を取得するにはどうすればよいですか?

0 投票する
7 に答える
2504 参照

c# - オブジェクトを実際の型にキャストする方法

次のコードを検討してください。

Foo()を呼び出した後、 TestGeneric の T は MyClass2ではなくMyClassになります。valMyClass2インスタンスとして扱うにはどうすればよいですか? 前もって感謝します。

Upd: オブジェクトがMyClass2 ctorを使用して作成されたことを実際には知りませんが、val.GetType() を呼び出すことでこれを推測できるため、単純なMyClass2は機能しません。

0 投票する
1 に答える
340 参照

java - Androidフラグメントフレームワーク:アップキャストは機能しません

アクティビティ内のListfragmentに取り組んでいます。アクティビティにネストされたクラスがあります。

しかし、コンパイラはDummySectionFragemtがフラグメントではないと文句を言います

コンパイラからの苦情:タイプの不一致:MainActivity.DummySectionFragmentからFragmentに変換できません

DummySectionFragmentがFragmentを直接拡張するようにすると、それは機能しますが、以前は機能しなかった理由がわかりません。どうやら、DummySectionFragmentはFragmentを拡張するListFragmentを拡張します。これはここでは暗黙のアップキャストであるはずですが、なぜ機能しないのかわかりません:(