首先这个题目涉及匿名类,Object o = new Object() {
public boolean equals(Object obj) {
return true;
}
};
这里创建了一个匿名类,从代码中可以看出,匿名类顾名思义没有名字,的确没名字,该匿名类继承了Object,并且重写了基类的equals方法。
然后把建立的匿名类的对象给了o,此处o是Object类型,因此这里实际上还发生了向上转型,接下来在下面调用了equals方法,这里又运用了多态,由于后期绑定(多态),它会调用子类的equals方法,程序返回true。答案选B。