すべて

015-002 - アップキャスト

アップキャストとは、子クラスのインスタンスを親クラスの型として扱うことです。Javaでは暗黙的に実行され、キャストの記述は不要です。継承関係があれば、子クラスは親クラスの全ての機能を持つため、安全に親クラスとして扱えます。ポリモーフィズムを実現する基本的な仕組みで、is-a関係の具体的な表現です。

アップキャストの理解は、ポリモーフィズムを活用するために必須です。親クラスの型で様々な子クラスを統一的に扱うことで、コードの柔軟性と再利用性が向上します。実務では、メソッドの引数や戻り値で親クラスの型を指定し、様々な子クラスのインスタンスを受け渡す場面で使用されます。たとえば、Listに、Dog、Cat、Birdなど様々な動物オブジェクトを格納し、共通のメソッドで処理するのがアップキャストの典型的な活用例です。データベースアクセス層でも、異なるデータソースを統一的に扱う際に活用されます。

この項目を学ぶことで、継承とポリモーフィズムの実践的な活用方法を習得し、型の柔軟な扱いができるようになります。設計の幅が広がります。前提知識として、継承の基本とポリモーフィズムの概念を理解している必要があります。

問題 (10)

無料トライアル
015-002-001

社員アップキャスト

**この問題では**: `Manager`<a href="https://javadrill.tech/problems/007">クラス</a>が`Employee`クラスを<a href="ht...

無料トライアル
015-002-002

getterメソッド:銀行口座クラス

# getterメソッド:銀行口座クラス **この問題では**: `accountHolder`(口座名義)と`balance`(残高)をprivateフィールドとして持つ`BankAccount`...

無料トライアル
015-002-003

アップキャスト:親クラス型への代入

# アップキャスト:親クラス型への代入 **この問題では**: <a href="https://javadrill.tech/problems/002/001">標準入力</a>から猫の名前を読み...

無料トライアル
015-002-004

アップキャスト:サブクラスからスーパークラスへ

# アップキャスト:サブクラスからスーパークラスへ **この問題では**: VehicleクラスとCarクラスを定義し、CarのインスタンスをVehicle型変数にアップキャストして代入した後、mo...

無料トライアル
015-002-005

アップキャスト:乗り物クラス

# アップキャスト:乗り物クラス **学習目標**: 子クラスのオブジェクトを親クラスの型に代入するアップキャストを理解する **この問題では**: `Vehicle`<a href="https...

015-002-006

ポリモーフィズム:配列での管理

# <a href="https://javadrill.tech/problems/015">ポリモーフィズム</a>:<a href="https://javadrill.tech/problem...

015-002-007

アップキャストで動物を扱う

# アップキャストで動物を扱う **この問題では**: `Animal`親クラスに`speak()`メソッドを定義し、`Dog`サブクラスでオーバーライドした上で、`Dog`インスタンスを`Anim...

015-002-008

アップキャストでポリモーフィズムを実現する

# アップキャストで<a href="https://javadrill.tech/problems/015">ポリモーフィズム</a>を実現する **この問題では**: アップキャストを使ってAn...

015-002-009

配列でアップキャストを活用する

# <a href="https://javadrill.tech/problems/004">配列</a>でアップキャストを活用する **この問題では**: `Shape`型の配列に`Circle...

015-002-010

アップキャストとダウンキャスト

# アップキャストとダウンキャスト **この問題では**: AnimalクラスとDogクラスを定義し、アップキャスト後のメソッド呼び出しとinstanceofを使った安全なダウンキャストを行い、結果...