equals方法的重写和重载

equals方法的重写和重载

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@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方法,而是直接写第二个,如下,那么这个算什么,是重新定义了一个方法吗?

1
2
3
4
5
6
7
8
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下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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