引用类型转换的问题:
向上转型:
说明:当有子类对象赋值给一个父类引用时,便是向上转型,多态本身就是向上转型的过程。
格式:Person p = new Student();
小的赋值给大的类型 需要类型提升
好处:向上转型的好处是隐藏了子类类型,提高了代码的扩展性。
弊端:只能使用父类共性的内容,而无法使用子类特有功能,功能有限制。
向下转型:
说明:一个已经向上转型的子类对象可以使用强制类型转换的格式,将父类引用转为子类引用,这个过程是向下转型。如果是直接创建父类对象,是无法向下转型的!
格式:Student s = (Student)p;
把刚才的父类(父接口)引用强转成其对应的子类类型。
备注:Cat c = (Cat)a2; Cat c = (Cat) a2; 有无空格都可
总结:
什么时候使用向上转型:当不需要面对子类类型时,通过提高扩展性,或者使用父类的功能就能完成相应的操作,这时就可以使用向上转型。
什么时候使用向下转型:当要使用子类特有功能时,就需要使用向下转型。
|
|