问一个java重写的问题

warword0 2008-05-18 05:03:32
class Cat {
public String furcolor;
public int weight;
public int height;

Cat(String furcolor, int weight, int height) {
this.furcolor = furcolor;
this.weight = weight;
this.height = height;
}
public boolean equals(Object obj) {
if(obj == null) {
return false;
}
else {
if(obj instanceof Cat) {
Cat cat = (Cat)obj;
if(this.furcolor == cat.furcolor && this.weight == cat.weight&&this.height == cat.height) {
return true;
}
}
return true;
}

}
}

public class TestEquals {
public static void main(String[] args) {
Cat c1 = new Cat("red",10,5);
Cat c2 = new Cat("red",10,5);
System.out.println(c1 == c2);
System.out.println(c1.equals(c2));
}
}

请问equals 写在TestEquals里面为什么编译时报错呢?Cat里面就行
...全文
44 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
warword0 2008-05-24
  • 打赏
  • 举报
回复
谢谢两位朋友,二楼的同志等级少点(虽然我等级也低),就给他了,呵呵。
snowflychen 2008-05-18
  • 打赏
  • 举报
回复
尚学堂的题是么?
为什么报错我同意2楼的看法
我给你解释下为什么要把它写在Cat类里吧,equals方法是定义在Object类中的方法,Object类是一切类的基类,你在Cat里写的equals方法实际上是重写的Object类的equals方法。
jdlsfl 2008-05-18
  • 打赏
  • 举报
回复
equals写在TestEquals你肯定没有实例化TestEquals,所以不能调用

equals写在TestEquals中时
你可以把equals改为静态的,前面加static
也可以把TestEquals实例化后调用

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧