如果p是父类Parent的对象,而c是子类Child的对象,则语句c=p是正确的还是错误的,为什么?
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/10/01 03:33:52
如果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;
如果是判定相等不相等,对象的相等不相等和派生关系 没联系,是对象的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;
java中父类可不可以转为子类?如:Child c=(Child)parent; 其中parent是Child的父类,但
JAVA题目,类B是一个抽象类,类C是类B的非抽象子类,下列创建对象x1的语句中正确的是?
在Java中,有两个类Student和Person.如果Student是Person的子类,则下列声明对象x的语句中错误
若有以下说明和语句,int c[5],*p ;p=c ;能正确引用c数组元素的是?A) &p B)*(p+3) C) c
2. 关于二维转三维,下列说法正确的是( ) A 二维对象必须是面域对象 B 二维对象可以不封闭 C 二维对象可
定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的为啥是 A)p=s; B)p=k; C
若有定义语句:char s[3][10],(*k)[3],*p;则以下赋值语句正确的是:A、p=s; B、p=k; C、
设有说明int s[2]={0,1],p=s;则语句错误的是() A. s++ B .p++ C. *p++ D. (*
若定义语句:int a,b,c,*p=&c;之后,接着执行下列选项中的语句,则能正确执行的语句是
英文缩写标点问题:名片上的英文邮编,是“P.C.:” 还是 “P.C:”正确?
C语言 若有定义语句:int a[2][3],*p[3];则以下语句中正确的是()A.p=a;B.p[0]=a;C.p[
C语言 当两个指针指向同一个数组中的元素时,p-q的物理意义是:指针p和q所指对象之间元素的数量