作业帮 > 综合 > 作业

如果p是父类Parent的对象,而c是子类Child的对象,则语句c=p是正确的还是错误的,为什么?

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/08/09 23:08:59
如果p是父类Parent的对象,而c是子类Child的对象,则语句c=p是正确的还是错误的,为什么?
如果p是父类Parent的对象,而c是子类Child的对象,则语句c=p是正确的还是错误的,为什么?
= 是赋值 还是 判定 相等,要是赋值的话不行,父类不能向下转型,比如动物是父类 猫是子类 你可以说猫是一个动物,但动物不能说是猫,因此 你不能把 p 转换成 c,相反 可以把 c 转成p,p = c 是正确的
如果是判定相等不相等,对象的相等不相等和派生关系 没联系,是对象的equals方法和hashcode决定的
class Parent {
String name;
public boolean equals(Object o){
return true;
}
}
class Child extends Parent{
public boolean equals(Object o){
return true;
}
}
Parent p = new Parent();
Child c = new Chile();
因为我们把equals 方法重写了总是返回true;
因此两个类的实例比较总是相同的
p.equals(c) == true;