Analyze the following code. Which of the following statements is correct?
public class Test {
public static void main(String[] args) {
Number x = new Integer(3);
System.out.println(x.intValue());
System.out.println(x.compareTo(new Integer(4)));
}
}
A. The program has a compile error because an Integer instance cannot be assigned to a Number variable.
B. The program has a compile error because intValue is an abstract method in Number.
C. The program has a compile error because x does not have the compareTo method.
D. The program compiles and runs fine.