// final methods cannot be overriden

class A {
	private int i;
	A () {i=10;}
	public final void f() {System.out.println("A::f " + i);}
}
class B extends A {
	private int j;
	B() {j=20;}
	public void f() {System.out.println("B::f " + j);} // is it acceptable?
	public void g() {System.out.println("B::g " + j);}
}

class FinalMethods {
	public static void main (String args[]) {
		A a = new B();
		a.f();
	}
}

