问答详情
源自:6-2 学生选课---判断 Set 中课程是否存在

set的contains方法

其实我还是没看懂为什么要重写haseCode和equals方法,这岂不是说明原生set的contains方法是无效的,不能用的,只能重写以才能用?

提问者:琴代语兮 2016-10-03 10:11

个回答

  • 假如爱有天意0
    2016-10-05 22:29:39
    已采纳

    这个你可以这样理解 equals方法是父类里面定义的 我们所写的子类都会继承他,但是父类里面的equals并不知道你子类中的equals具体怎么判断的,就像前面我们学的继承一样,我们定义了一个动物类 ,动物类里面有say(){System.out.println("动物会叫");}这个方法,他只是说出了一个动物会叫的事实,但是具体继承他的动物,比如狗继承了他 狗的方法 应该重写他say(){System.out.println(狗汪汪叫);} 而不是输出从父类中继承过来的say方法输出,动物会叫,这样不合理,我们重写是为了更适合现在的需求,希望对你有帮助。

  • qq_小旺福_03973303
    2016-10-03 10:39:37

    不是,源生的默认比较的是两个对象的地址,也就是相当于===,判断是不是同一个对象,改进为如果两个对象的value相等,他们的比较就返回true,也就相等。