package demo;
public class Main {
public static void main(String[] args) {
Object circle1 = new Circle();
Object circle2 = new Circle();
System.out.println(circle1.equals(circle2));
}
}
class Circle{
double radius;
public boolean equals(Circle circle) {
return this.radius == circle.radius;
}
}输出为false,就算输错了也可以当做方法重载啊,我用debug来看,根本就没有进入equals怎么回事?
3 回答
已采纳
xixiyingyi
TA贡献18条经验 获得超19个赞
hi,Java里面object的equals方法参数是(object obj)哦,你重写的equals(xxxx),参数和父类object不一样呢,所以其实你并没有重写equals方法,你只是在自定义类里面新增了一个看似很像重写object的equals方法的方法。你在main方法里面调用的是object的equals方法,当然不会进去你自定义的'equals'方法里面了。这样说你懂了吗?
添加回答
举报
0/150
提交
取消