12.对象的转型
2019-02-23 本文已影响0人
null_meng
1.向上转型
2.向下转型
什么是向上转型?
向上转型------将子类的对象赋值给父类的引用
Student s = new Student();
Person p = s;
堆内存中一个对象,栈内存中两个引用
一个引用能够调用哪些成员(变量和函数),取决于这个引用的类型
为什么使用向上转型?
减少重复代码
当一个父类下的许多子类都需要一个方法时,只需要在父类中写这个方法,然后在主程序中用向上转型调用父类的这个方法,通过新建子类的对象找到对应的子类。达到所有的子类都可以使用这个方法的目的,而不需要在所有的子类中编写这个方法,减少了重复代码的出现
什么是向下转型?
向下转型------将父类的对象赋给子类的引用
Student s1 = new Student();
Person p = s1;
Student s2 = (Student)p;
堆内存中一个对象,栈内存中三个引用
在进行向下转型时一定要强制转换保证向下转型的准确性,开发中一定要慎用向下转型
为什么使用向下转型?
开发应用时经常需要子类进行向上转型,在向上转型时往往会丢失子类一部分东西,这时我们使用向下转型时,可以把子类丢失的那部分东西拿回来