java オーバーライドしたメソッドをインスタンス化した子クラスで親クラスのメソッド内で実行した結果

  • 作成日 2019.11.22
  • 更新日 2020.07.21
  • java
java オーバーライドしたメソッドをインスタンス化した子クラスで親クラスのメソッド内で実行した結果

何を書いているかわかりにくですが、質問され少し迷ったのでサンプルコードを書いて結果を確認した際のコード。

検証コード

test.java

public class test {
  public static void main(String args[]){
	 Ko ko = new Ko();
  //子クラスで親クラスのメソッドdispを実行
    ko.disp();
  }
}

class Oya{
  public void disp(){
    System.out.println("文字を表示");
    //同クラス内のメソッドを実行
    disp_char();
  }
  
  public void disp_char(){
    System.out.println("オーバーライド予定です");
  }
}

class Ko extends Oya{
	@Override
	public void disp_char(){
      //親クラスのdisp_charをオーバーライド
	    System.out.println("オーバーライドされます");
	}
  
}

上記のコードが、「オーバーライド予定です」か「オーバーライドされます」になるのか、少し迷った。

結果は下記となります。

文字を表示
オーバーライドしました