class WithFinals {
// Identical to "private" alone:
private final void f() {
System.out.println("WithFinals.f()");
} // Also automatically "final":
private void g() {
System.out.println("WithFinals.g()");
}
}class OverridingPrivate extends WithFinals {
private final void f() {
System.out.println("OverridingPrivate.f()");
} private void g() {
System.out.println("OverridingPrivate.g()");
}
}
}
// Identical to "private" alone:
private final void f() {
System.out.println("WithFinals.f()");
} // Also automatically "final":
private void g() {
System.out.println("WithFinals.g()");
}
}class OverridingPrivate extends WithFinals {
private final void f() {
System.out.println("OverridingPrivate.f()");
} private void g() {
System.out.println("OverridingPrivate.g()");
}
}
}
f,g函数还是存在在子类里的,并且是私有的,所以不能被子类访问
在你这里并没有重写父类,、只不过在子类里又定义了个相同名的
方法是私有的,你把WithFinals 中的的private final void f()换成是public final void f()或protected
后 OverridingPrivate 才能继承到这个方法,这时才能测试你能不能重写,单显然,final方法是不能被重写的~
他们没有联系,只是名称相同而已。