Java FAQ:final で継承を阻止

Java FAQ:S011 Q-11

class C2008042401 {
    //void foo() {
    final void foo() {
        System.out.println("foo in C2008042401");
    }
}

class C2008042402 extends C2008042401 {
    C2008042402() {
        foo();
    }

    void foo() {
        System.out.println("foo in C2008042402");
    }
}

public class C2008042400 {
    public static void main(String[] args) {
        new C2008042402();
    }
}

で、

C2008042400.java:19: C2008042402 の foo() は C2008042401 の foo() をオーバーライドできません。; オーバーライドされたメソッドは final です。
    void foo() {
         ^
エラー 1 個