equals方法的重写和重载

equals方法的重写和重载

@Override
	public boolean equals(Object obj) {
		if(obj==null)
			return false;
		Cat cat=(Cat)obj;
		if(this.getName().equals(cat.getName())&&this.getSpecies()==(cat.getSpecies()))
			return true;
		else 
			return false;
	}
	
	public boolean equals(Cat obj) {
		if(obj==null)
			return false;
		//Cat cat=(Cat)obj;
		if(this.getName().equals(obj.getName())&&this.getSpecies()==(obj.getSpecies()))
			return true;
		else 
			return false;
	}

上面的代码,第一个equals方法重写的是Object类的,下面的equals方法是重载第一个的,那我如果不写第一个equals方法,而是直接写第二个,如下,那么这个算什么,是重新定义了一个方法吗?

public boolean equals(Cat obj) {
		if(obj==null)
			return false;
		if(this.getName().equals(obj.getName())&&this.getSpecies()==(obj.getSpecies()))
			return true;
		else 
			return false;
	}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
irista23 2018-06-04 18:41:09

任何我们自定义的类默认都是继承于Object,即使你不写第一个,只写第二个也是对父类Object的equals() 方法的重写

  • 提问者 摄影祖师爷 #1
    重写不是参数列表要一样吗,第二个参数是(Cat obj)。。。还是我记错了。。
    2018-06-04 18:59:27
  • irista23 回复 提问者 摄影祖师爷 #2
    如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写。这个参数可以是继承关系的子类。
    2018-06-04 19:08:59
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师