Analyze the following code.
// Program 1
public class Test {
public static void main(String[] args) {
Object a1 = new A();
Object a2 = new A();
System.out.println(((A)a1).equals((A)a2));
}
}
class A {
int x;
public boolean equals(A a) {
return this.x == a.x;
}
}
// Program 2
public class Test {
public static void main(String[] args) {
A a1 = new A();
A a2 = new A();
System.out.println(a1.equals(a2));
}
}
class A {
int x;
public boolean equals(A a) {
return this.x == a.x;
}
}
A. Program 1 displays true and Program 2 displays true
B. Program 1 displays false and Program 2 displays trueC. Program 1 displays true and Program 2 displays false
D. Program 1 displays false and Program 2 displays false
The correct answer is A
Your answer C is incorrect
Explanation: In Program 1, ((A)a1).equals((A)a2) matches the equals(A a) method in the class A.