Java 重写

利用重写

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

在SuperHero类中重新定义run()函数。

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

调用Hero和SuperHero的run()函数

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

执行结果
勇者逃跑了!
勇者退却了!

继承被禁止

在声明时带有final修饰符的String类和其他类无法进行继承。

public class Main extends String{

在Java的API参考文档中可以确认String类是禁止的。

public final class Main {

禁止覆写

在声明时加上final修饰符的方法无法在子类中被重写。

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

以下是对这段话的中文本地化翻译:

public final void run()方法会使之前的SuperHero类的run()方法失效。

广告
将在 10 秒后关闭
bannerAds