LoginSignup
0
0

More than 3 years have passed since last update.

java(オーバーライド)

Last updated at Posted at 2020-05-22

オーバーライドを活用する

Hero.java
public class Hero {
  String name = "勇者";
  int hp = 100;
  //逃げる
  public void run() {
    System.out.println(this.name + "は逃げ出した!");
  }
}

SuperHeroクラスにrun()を再定義する

SuperHero.java
public class SuperHero extends Hero{
  boolean flying;
  //撤退する
  public void run() {      //Heroクラスにも定義してあるが、再定義(上書き)できる
    System.out.println(this.name + "撤退した!");
 }
}

HeroとSuperHeroのrun()を呼び出す

Main.java
public class Main {
  public static void main(String[] args) {
    Hero h = new Hero();
    h.run();
    SuperHero sh = new SuperHero();
    sh.run();
  }
}

実行結果
勇者は逃げ出した!
勇者は撤退した!

継承の禁止

Stringクラスと宣言時にfinalがついてるクラスは継承できない

Main.java
public class Main extends String{

Stringクラス禁止は、javaのAPIリファレンスでも確認できる

Main.java
public final class Main {

オーバーライドの禁止

宣言時にfinalが付けられたメソッドは、子クラスでオーバーライドできない

Hero.java
public class Hero {
  String name = "勇者";
  int hp = 100;
  //逃げる
  public final void run() {     //run()はオーバーライドできない
    System.out.println(this.name + "は逃げ出した!");
  }
}

public final void run()先ほどの、SuperHeroクラスのrun()メソッドは無効になる

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0