すべて

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型変数にア...

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`親クラスに`name`フィールドと`speak()`メソッドを定義し、`Dog`サブクラスでオーバーライドした上で、`Dog`...

015-002-008

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

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

015-002-009

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

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

015-002-010

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

# アップキャストとダウンキャスト **この問題では**: Scannerで読み込んだ動物の種類に基づいてAnimal/Dog/Catクラスのオブジェクトを生成し、アップキャスト後のメソッド呼び出し...