Declarations and Access Control - Programming

Q1:

What will be the output of the program?
class A 
{
    final public int GetResult(int a, int b) { return 0; } 
} 
class B extends A 
{ 
    public int GetResult(int a, int b) {return 1; } 
} 
public class Test 
{
    public static void main(String args[]) 
    { 
        B b = new B(); 
        System.out.println('x = ' + b.GetResult(0, 1));  
    } 
}

A x = 0

B x = 1

C Compilation fails.

D An exception is thrown at runtime.

ANS:A - x = 0

The code doesn't compile because the method GetResult() in class A is final and so cannot be overridden.