★このページは書きかけです。
多態性とは、処理(関数またはメソッド)の定義(呼び出し名+型+引数)が同一であっても、処理内部の動きをクラスごとに替えられる機能のことです。
例えばJavaにおいては、
そしてこれは、
実体を並べてみて共通化あるいは抽象化することを
視点を180度替える必要があるというのはこのことです。
インタフェースは多態性の一種#
オブジェクト指向には- 多態性 (ポリモーフィズム:polymorphism)
多態性とは、処理(関数またはメソッド)の定義(呼び出し名+型+引数)が同一であっても、処理内部の動きをクラスごとに替えられる機能のことです。
例えばJavaにおいては、
- abstractメソッド
- Interface (インタフェース)
- override(オーバーライド)
インタフェースは役割#
責務はクラスではないの中で書いたように、- インタフェースは役割
- 自転車
- バイク
- 自動車
- 飛行機
- 乗り物
- 「今日は乗り物で来た。」ともし言われたら、
- 「何に乗ったの?」という疑問が起こると思います。
- 「今日は自転車で来た。」と聞いて
- 「何に乗ったの?」とは誰も思いません。
- 役割では実体を決められない
そしてこれは、
- 責務でクラスは決まらない
実体を並べてみないと多態性を定義できない#
多態性を利用する時に注意すべき点は、設計時と実装時で手順を180度替える必要があることです。【設計時】#
- 実体(クラス)を先に並べて比較する。
- 共通的な処理を抽出する。
- その処理を再定義する(呼び出し名、戻り値、引数を共通化する)。
- インタフェースの場合はインタフェース名を決める。
- クラス → インタフェース
実体を並べてみて共通化あるいは抽象化することを
- 汎化
【実装時】#
- 設計時に決めたインタフェースまたは抽象メソッドを実装する。
- それらを実現するためのクラスを実装する。
- インタフェース → クラス
- 多態性を定義する際は個別の実体(クラス)を先に並べてみて共通化する
視点を180度替える必要があるというのはこのことです。
添付ファイルの追加
ログイン済のユーザのみが添付ファイルをアップロード出来ます。
«
This page (revision-10) was last changed on 18-3-2014 00:22 by ytp