求个高手解答,关于子类的参数问题。

Andrew_2015_3 2016-08-02 12:48:48
我在父类里重写了object.equals方法,然后我想在子类里也重写发现了个问题,红色部分参数obj怎么去访问父类的color,难道是obj.super.color?还有这样编译出错。
estEquals.java:40: error: bad operand types for binary operator '&&'
if(super.color == obj1.color && super.age == obj1.age &&
this.weight = weight){ ^
first type: boolean
second type: int


class Dog{
protected int color;
protected int age;
Dog(int color, int age){
this.color = color;
this.age = age;
}
public boolean equals(Object obj){
if(obj == null)return false;
if(obj instanceof Dog){
Dog obj1 = (Dog)obj;
if(this.color == obj1.color && this.age == obj1.age){
return true;
}
}
return false;
}
}

class DogSon extends Dog{
private int weight;
DogSon(int color, int age, int weight){
super(color, age);
this.weight = weight;
}
public boolean equals(Object obj){
if(obj == null)return false;
if(obj instanceof DogSon){
DogSon obj1 = (DogSon)obj;
if(super.color == obj1.color && super.age == obj1.age && this.weight = weight){
return true;
}
}
return false;
}
}

...全文
118 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
adfldk 2016-08-02
  • 打赏
  • 举报
回复
思路没错 可能你是笔误 if判断是等于而不是赋值 有时候多年经验的也会犯这种错
自由自在_Yu 2016-08-02
  • 打赏
  • 举报
回复
super.color == obj1.color && super.age == obj1.age && this.weight = weight 这一行的this.weight = weight改为this.weight == weight

62,625

社区成员

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

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