为什么比较变量a=0和b=0不用重写equals()?

来源:9-9 Java 中的 Object 类 Ⅱ

蜡笔不xla0心

2016-09-13 20:47

这里是只有实例化的对象用equals()比较才需要重写是吗?要是平时,比方说赋值int a=0;int b=0;然后比较a是否等于b就不需要重写是为什么,难道a和b不需要分配地址吗

写回答 关注

3回答

  • KeT
    2016-09-19 18:22:32
    已采纳

    因为a,b是基本类型,并且不是你写的那个类的成员变量,所以a,b是不能用equals比较的,如果强行用equals比较,则会编译报错。你提到重写,重写的概念是在需要在子类中重写其父类的方法,可是,基本类型有父类吗?没有,所以重写基本类型的数据的equals方法这一概念就不存在。至于分配内存这个问题,在调用它们的时候,肯定分配了内存给它们。所以,这是为何基本类型只能用==比较,而不能用equals。

  • 慕丝1285031
    2016-09-14 14:15:01

    a和b是int类型,字符串用equals().

  • qq_时光吹老了好男孩_0
    2016-09-13 21:21:51

    因为两种都是数据类型 

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530560 学习 · 6091 问题

查看课程

相似问题