ポリモフィズムは多様性を意味します。
傾斜によるメソッドのオーバーライドをして
多様性を示現する手段です。
これが重要な働きをするので
抑えておく必要があります。
Javaでは、ポリモフィズムを用いることで
高度で且つ柔軟な設計が可能になります。
大きいプロジェクトほど使用する
頻度も多いので、
重要なポイントになってきます。
呼び出し方は同じですが、
呼び出し先の処理が違うことになります。
オーバーライドすることで、
上記のイラストのような処理が可能になります。
不都合A
設計の段階で
継承の材料となるクラスを作成する時点では、
その処理内容をまだ確定できない
「抽象メソッド」が存在する為、
以下の事が起こり得る(未確定メソッド)
- ①オーバーライドの処理を忘れてしまう
- ②何もしない処理との区別がつかない
不都合B
クラスには自由に選べる
2つの利用方がある為、
以下の事が起こり得る
- ③意図せずにnewして利用されてしまう
・不都合Aの②を解決する
アクセス修飾子 abstract class クラス名{
アクセス修飾子 abstract 戻り値 メソッド名(引数);
}
1 2 3 4 5 6 7 |
//抽象メソッドを含む抽象クラスの宣言 public abstract class Hunter { // 抽象クラス・メソッドの宣言 public abstract void masic(); } |
abstract(アブストラクト)は
「抽象的・曖昧」という意味です。
abstractが付いた処理は、
「現時点では具体的に決めていないので
記載しない」という意味合いになります。
・不都合Bの③を解決する
抽象クラスとして宣言されたクラスは
Hunter m = new Hunter();
のようにインスタンス生成すると
コンパイルに失敗しエラーが発生します。
エラー:
ある程度理解ができた方は
こちらを参考にしてください。
抽象クラスを実際に使用した
本格的なプログラムになっています。
処理内容が未確定で且つ
継承するクラスを開発する際には、
抽象クラスとていて宣言することで
インスタンス生成を防ぐことができます。
この記事へのコメントはありません。