superの利用
このページでは、superの概要、利用方法について説明します。
概要、利用方法
superはサブクラスから、スーパークラスのメンバ変数、メソッドを参照する際に使用します。スーパークラスのメソッドを活かしつつ、サブクラスのメソッドで機能追加したい場合などに使用します。
以下に、オーバーライドを行ったサブクラスのメソッドから、スーパークラスのメソッドを参照する例を記載します。
スーパークラス(ExClass14クラス)
class ExClass14 {
//引数の値に10,000ポイント追加するメソッドです。
int getPoint(int point) {
point = 10000 + point;
return point;
}
}
サブクラス(SubExClass14クラス)
class SubExClass14 extends ExClass14 {
//スーパークラスのgetPointメソッドをオーバーライドしています。
//引数の値に、ボーナスポイントとして、500ポイント追加し、スーパークラスのメソッドを呼び出しています。
//結果として、10,500ポイントが追加されます。
@Override
int getPoint(int point) {
point = point + 500;
return super.getPoint(point);
}
}
superを使わず、「point = 10000 + point;」とスーパークラスのコードをサブクラスに記載した場合、もし、スーパークラスのコードに変更があった場合、サブクラスのコードも修正する必要が出てき、プログラムの修正漏れ、誤動作の原因になります。superを使用することで、それら誤動作の要因を防止することができます。
このほか、superは、サブクラスのコンストラクタからスーパークラスのコンストラクタを参照したい場合に使用します。詳細は、コンストラクタを参照してください。
12superの利用