オーバーライド

オーバーライドとは、親クラス(スーパークラス)で定義されているインスタンスメソッドを、子クラス(サブクラス)で再定義することを言います。

まずは下記サンプルを見てください。
//親クラス定義
class ExClass{
//オーバーライドされるメソッド
int smpM(int i) {
int x;
x = i * 2;
return x; //引数で受け取った数値の倍数を返す
}
}
//子クラス定義
class SubClass extends ExClass{
//オーバーライドするメソッド
int smpM(int i) {
int x;
x = i * 2;
x += 10; //オーバーライドしたメソッドには、更に10を加算
return x;
}
public static void main(String[] args) {
SubClass subC = new SubClass();
subC.smpM(10);
}
}

親クラスが定義しているsmpM()メソッドを、子クラスでも定義しています。
このように、子クラスで親クラスと同じ名前のメソッドを定義し直すことで、オーバーライドを行ったことになります。

親クラスのメソッドでは機能が不十分であった場合、子クラスに特化した機能を追加して再定義しなおすことで、親クラス、子クラスの関係を維持します。

親クラスのメソッドをオーバーライドするには、オーバーライドするメソッドのシグネチャを親クラスのメソッドを一致させる必要があります。
シグネチャ:引数の数、引数の型、戻り値をまとめた呼び方

gamesite8 at 06:13│TrackBack(0)clip!Java入門 

トラックバックURL