抽象メソッドと具象メソッド
016-002 - 抽象メソッドと具象メソッド
抽象メソッドは実装を持たないメソッドで、abstract修飾子を付けて定義します。抽象クラス内でのみ定義でき、子クラスで必ず実装しなければなりません。具象メソッドは通常の実装を持つメソッドで、抽象クラス内に共存できます。この組み合わせにより、共通処理と拡張ポイントを明確に分離できます。メソッドの可視性はpublicやprotectedで定義することが一般的です。
抽象メソッドと具象メソッドの使い分けは、優れたクラス設計の基本です。親クラスで共通処理を実装しつつ、個別の処理は子クラスに委ねることで、コードの重複を避け、変更に強い設計が実現できます。実務では、ビジネスロジックのテンプレート、データアクセスの共通処理と個別実装の分離、UIコンポーネントの基本機能と拡張などで活用されます。たとえば、レポート生成の共通フローを具象メソッドで定義し、データ取得処理を抽象メソッドとして子クラスに実装させるパターンがよく使われます。
この項目を学ぶことで、抽象クラスの設計パターンを習得し、適切な抽象化レベルでクラスを設計できるようになります。テンプレートメソッドパターンの実装力が身につきます。前提知識として、抽象クラスの基本概念を理解している必要があります。
問題 (9)
具象メソッド:計算機クラスの複数メソッド
# 具象メソッド:計算機クラスの複数メソッド **この問題では**: `Calculator`<a href="https://javadrill.tech/problems/007">クラス</a...
抽象メソッドと具象メソッド:乗り物クラス
# 抽象メソッドと具象メソッド:乗り物クラス **この問題では**: <a href="https://javadrill.tech/problems/016">抽象クラス</a>`Vehicle`...
抽象メソッドと具象メソッド:図形クラス
# 抽象メソッドと具象メソッド:図形クラス **この問題では**: <a href="https://javadrill.tech/problems/016">抽象クラス</a>`Shape`を<a...
抽象メソッドと具象メソッド:図形の面積計算
# 抽象メソッドと具象メソッド:図形の面積計算 **この問題では**: <a href="https://javadrill.tech/problems/016">抽象クラス</a>`Shape`を...
具象メソッド:状態を持つポイントカードクラス
# 具象メソッド:状態を持つポイントカードクラス **この問題では**: `PointCard`<a href="https://javadrill.tech/problems/007">クラス</...
抽象クラス:具象メソッド
# <a href="https://javadrill.tech/problems/016">抽象クラス</a>:具象メソッド **この問題では**: `Animal`抽象クラスと`Dog`具象ク...
抽象メソッドと具象メソッドの共存
# 抽象メソッドと具象メソッドの共存 **この問題では**: `Animal`<a href="https://javadrill.tech/problems/016">抽象クラス</a>に抽象メソ...
抽象クラスでテンプレートメソッドを実装
# <a href="https://javadrill.tech/problems/016">抽象クラス</a>でテンプレートメソッドを実装 **この問題では**: <a href="https:...
抽象メソッドの実装
# 抽象メソッドの実装 **この問題では**: <a href="https://javadrill.tech/problems/016">抽象クラス</a>`Shape`を<a href="htt...
