多態性
多態性(ポリモフィズム)とは、個性を表す。一つの要求に対して、それぞれが別々の動きを行うこと。
例)RPGの戦闘場面で・・・
要求:「攻撃」
→ 剣士:剣で攻撃
→ 魔法使い:魔法で攻撃
→ モンスター:爪で攻撃
→ スライム:仲間を呼んで合体
多態性を実現させるためには、以下の技術が存在する。
例)
宿クラス、飛行機クラス、電車クラス これらの共通のメソッド「予約」をインタフェースとして定義。
クラス間に継承の関係はないが、インタフェースでアップキャストすることで「予約」を呼び出すことで、宿の予約、飛行機の予約、電車の予約が可能になる。
例)RPGの戦闘場面で・・・
要求:「攻撃」
→ 剣士:剣で攻撃
→ 魔法使い:魔法で攻撃
→ モンスター:爪で攻撃
→ スライム:仲間を呼んで合体
多態性を実現させるためには、以下の技術が存在する。
継承
キャスト
インタフェース
クラスで利用するメソッドの定義だけを行ったもの。メソッドの実装は、インタフェースを利用するクラス内で具体的に定義する。そのことにより、各クラスは実装だけを、そのクラスの特性に基づき記述するだけでメソッドを定義、実装することができる。主に、多態性を実現するために利用される。ABAPでは、多重継承が認められておらず、インタフェースを利用することで多重継承をシミュレートすることが可能。例)
宿クラス、飛行機クラス、電車クラス これらの共通のメソッド「予約」をインタフェースとして定義。
クラス間に継承の関係はないが、インタフェースでアップキャストすることで「予約」を呼び出すことで、宿の予約、飛行機の予約、電車の予約が可能になる。
2008年10月24日(金) 15:09:08 Modified by chocolate_mousse