java内存分配和强转/转型(向上和向下转型)相关

来源:互联网 发布:数据分析实战 pdf 编辑:程序博客网 时间:2024/06/17 00:40

java 内存分配  http://blog.csdn.net/javaoverflow/article/details/8874172

http://blog.csdn.net/shimiso/article/details/8595564

百度搜:java 内存分配

下图仅供参考,不保证正确性




Son son = new Son();  son是new出的对象,严格来说是对象的引用

Father father=new Song();父类的引用指向子类("指向xxx" 是"指向 new 的对象",如new 的对象是子类,则指向子类,new 的对象是父类,则指向父类。下文中的“成员变量,静态方法看左边;非静态方法:编译看左边,运行看右边”这句话,左右中的“左”指等号左边对象的类型,右指等号右边new的对象)。

创建的对象是父类的引用还是子类的引用怎么看?创建对象的类型为是什么,就称是什么的引用,如创建了对象son 而son的类型为Son,则说是Son的引用。



多态问题1:有继承关系的父类和子类拥有相同变量或方法时,调用的是子类还是父类的变量或方法

如链接问题:https://www.oschina.net/question/1175055_117310

可以参考:http://blog.csdn.net/foreverhuylee/article/details/21278311 一句话:成员变量,静态方法看左边;非静态方法:编译看左边,运行看右边

多态的条件:继承 + 重写 +父类的引用指向子类

多态问题2:转型

父类的引用操作子类,即向上转型(Father father = new Son()),好处是提高了扩展性,坏处是不能使用子类特有的方法。

若想使用子类特有的方法可以向下转型(强转)即:

Father father = new Son();

father =(Son)father;

注意:1 无论向上还是向下转型,最终都是子类对象做着变化--出自毕向东-多态_转型--节。此节父类是动物,子类是小狗,子类做变化的含义是自始至终都是小狗做变化,一会叫小狗,一会叫动物。

             2 向下转型要做检查


                  3 强转分为基本数据类型和引用数据类型两种情况。引用数据类型强转中上文讲了父类的引用指向子类的情况,如果不存在父子类引用,会异常(仅供参考)




0 0