public class Father {
private final void run(){
System.out.println("father");
}
}
public class Son extends Father {
private final void run(){
System.out.println("son");
};
public static void main(String[] args) {
new Son().run();
}
}
运行输出 son
首先父类中final修饰的方法子类不能重写,可以被重载。
但题中father的方法访问修饰符是private,父类中的private final方法不能被继承,不影响子类定义同名同参同返回值的方法,这里如果改成public就会出现无法重写的报错。
此外,父类中的static方法可以被继承,但是不能重写。当父类的引用指向子类时,调用静态方法看引用,调用普通方法看对象。