java:
//创建父类
class A{
public void f(){
System.out.println("AAA");
}
}
//创建子类
class B extends A{
public void f(){
System.out.println("BBB");
}
}
class TestA{
public static void main(String[] args){
A aa = new A();
B bb = new B();
aa = bb;//父类的引用指向子类的引用,正确
bb = aa;//子类的引用指向父类的引用,错误
bb=(B)aa;//将父类的引用转换为子类的引用,然后赋给子类的引用
}
}C语言:暂时认为double是父类,int是子类
int main(){
int A;
A=10;//正确 分配一块int类型的内存空间,该空间指向一个int类型的对象【子类地址->子类对象】
A=10.0;//错误 分配了一块int类型的空间,该空间指向一个double类型的对象【子类地址->父类对象】
//间接地证明了子类的地址不能指向父类的对象
double B;
B=10;//正确 分配了一块double类型的空间,该空间指向了int类型的对象【父类地址->子类对象】
B=10.0;//正确 分配了一块double类型的空间,该空间指向了double类型的对象【父类地址->父类对象】
return 0;
}
本文通过Java示例展示了父类与子类之间的引用转换,并解释了如何正确进行类型转换;同时,通过C语言的例子说明了整型变量与浮点型变量之间的赋值差异。
112

被折叠的 条评论
为什么被折叠?



