java多态中的引用与C语言中的指针比较

来源:互联网 发布:深圳知复科技有限公司 编辑:程序博客网 时间:2024/05/04 21:38

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;}


0 0