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()方法失效。