Javaにおけるオーバーライドの基本原則と使用方法を簡単に解説

java

オーバーライドとは

ひとことで表すと「上書き」すること

スーパークラスのメソッドを

サブクラスに記述されたメソッドで上書きし、処理を行う

オーバーライドの条件

  • 継承関係である
  • メソッド名が同じ
  • 引数の型、数、順番が同じ
  • 戻り値の型が同じ
  • サブクラスのアクセス修飾子がスーパークラスより、制限範囲が同じか制限以内であること

継承関係であること

オーバーライドは継承関係で使用される

継承とは、スーパークラスとサブクラスの関係のこと

メソッド名が同じ

スーパークラスに記述されたメソッド名と

サブクラスに記述されたメソッド名が同じであること

//スーパークラス
public class Test {
	         //メソッド名
	public void index() {
		System.out.println("オーバーライドされる");
	}
}
//サブクラス
public class Test1 extends Test{
	         //メソッド名
	public void index() {
		System.out.println("オーバーライドする");
	}
}

引数の型、数、順番が同じ

引数とはメソッド名の括弧「()」内に記述されているものを示す

その引数の中がスーパークラスとサブクラスが同じであること

(例)

   //引数の中が同じであること
    index(String name, int num)

戻り値の型が同じ

メソッド名の手前に記述されているのが、戻り値の型である

その戻り値の型がスーパークラスとサブクラスで同じであること

アクセス修飾子がスーパークラスより、制限範囲が同じか制限以内であること

例えば、

スーパークラスが「アクセス修飾子(public)」の場合

→サブクラスが「アクセス修飾子(public)」にすると実行できる

スーパークラスが「アクセス修飾子(public)」の場合

→サブクラスが「アクセス修飾子(なし)」にするとコンパイルエラーとなる

スーパークラスが「アクセス修飾子(なし)」の場合

→サブクラスが「アクセス修飾子(public)」にすると実行できる

プラスαの抑えておきたい知識

オーバーライドする場合は、

アノテーションを「@Override」記述することココの場所は

オーバーライドしているよ!とわかりやすくなるよ

記述しなくても実行に問題はない

コメント

PAGE TOP
タイトルとURLをコピーしました