问一道关于java的程序阅读题! 为什么答案输出的是false true false

如题所述

第1个回答  2013-12-17
第一个的意思是比较两个对象内存地址是不是一样,因为都是new的,所以false
第二个与第一个相反,所以是true
第三个是用equals方法进行比,这个equals是父类Object的,实现也是比较对象的内存地址
public boolean equals(Object obj) {
return (this == obj);
}
第2个回答  2013-12-17
同一个类的两个不同实例,是不相等的,就如同甲和乙都是人,但是不能说甲就是乙一样。所以前两行是false和true。至于第三行的equals方法,如果未复写这个方法,它和b1==b2是一致的,所以也是false。但是,如果在B类中复写了equals(Object o)这个方法,那就会根据这个方法的计算返回结果了本回答被提问者采纳