黑马程序员技术交流社区
标题:
Object继承问题
[打印本页]
作者:
汤姆纳斯
时间:
2014-6-11 12:59
标题:
Object继承问题
本帖最后由 汤姆纳斯 于 2014-6-23 16:50 编辑
class Person extends Object
{
private int age;
public boolean equals(Object obj)//为什么括号里是Object呢?为什么不是Person呢?毕老师的视频说是覆盖,覆盖什么呢?
{
return this.age==obj.age;
}
}
复制代码
作者:
youngkay
时间:
2014-6-11 13:06
这是基本方法 不难的?你遇到什么问题了?
作者:
酸奶小哥
时间:
2014-6-11 14:11
equals 比较的是对象值。“==”比较的是值地址。。。
作者:
汤姆纳斯
时间:
2014-6-11 14:34
youngkay 发表于 2014-6-11 13:06
这是基本方法 不难的?你遇到什么问题了?
我把问题改了下
作者:
woshihq
时间:
2014-6-11 15:17
Object是所有子类的父类,所以用它来表示某个子类,你可以修改的
作者:
294645832
时间:
2014-6-11 15:25
Object是所有类的父类 也就是所当为Object的时候是可以接受所有的类
作者:
附耳细说
时间:
2014-6-11 15:59
首先,覆盖什么
覆盖的是Object类的同名方法 equals
其实,为什么不是Person,而是Object。也就是为什么要覆盖,你想Object下面肯定不止一个Person类,可能还有People类,Child类,Woman类,Soilder类...,但是他们都有一个age属性,如果Person要判断是不是和People,Child,Woman,Soilder... age是不是相等,需要写
public boolean equals(People obj)
public boolean equals(Child obj)
public boolean equals(Woman obj)
public boolean equals(Soilder obj)
...
作者:
附耳细说
时间:
2014-6-11 16:00
但是如果用他们的父类,通过多态的方式传递参数进去 上面那么多方法只需要简写成
public boolean equals(Object obj)
作者:
18353666072
时间:
2014-6-11 16:24
学习了啊 {:3_62:}
作者:
倪大大
时间:
2014-6-11 16:28
你这个类重写了Object的 equals方法而已 没什么特别啊
作者:
tangchuanping
时间:
2014-6-11 17:42
覆盖父类的equals方法啊
作者:
pk49800
时间:
2014-6-11 17:54
这里的equals方法覆盖了Object里面的equals方法,覆盖的是方法啊,用这方法来保证数据的唯一性的
作者:
24岁???
时间:
2014-6-11 20:12
个人觉得写Person也是没有问题的,但是无法实现你想要的功能,equals这个功能是 是判断两个对象的内容是否相等,如果Object改成Person,那么相比较的两个对象都必须是Person类型的,无法和别的类中的对象进行比较,呢么就有了一个局限性,而Object作为父类,就不存在这样的问题。
作者:
crazystraw
时间:
2014-6-11 21:13
怎么没有大神详细的解释呢
作者:
宋文辉
时间:
2014-6-11 21:28
Object是所有类的基类,这个你可以查询jdk文档了解,所有类都继承自Object。 Object ...objects这种参数定义是在不确定方法参数的情况下的一种多态表现形式。即这个方法可以传递多个参数,这个参数的个数是不确定的。这样你在方法体中需要相应的做些处理。因为Object是基类,所以使用Object ...objects这样的参数形式,允许一切继承自Object的对象作为参数。这种方法在实际中应该还是比较少用的。 Object[] obj这样的形式,就是一个Object数组构成的参数形式。说明这个方法的参数是固定的,是一个Object数组,至于这个数组中存储的元素,可以是继承自Object的所有类的对象。 这些基础东西建议你多看几遍"Think in java"
作者:
人心如水
时间:
2014-6-11 22:52
Object类里面有个方法是equals() 只是重写了下
作者:
MasMajesty
时间:
2014-6-11 23:00
如果自定义对象想要使用equals()需要重写该方法!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2