java向上造型的意义?

Python056

java向上造型的意义?,第1张

向上造型:父类的引用指向子类对象

向上造型可以大大提高程序的可扩展性。利于代码维护。

面向对象的三大特性:封装;继承;多态。向上造型可以看做多态的一种体现。即允许一种类型有不同的实现(可以理解为事物存在的多种体现形态)。

典型应用:接口。

Dog d1=(Dog)a

因为这一句的定义是把父类对象强制转换为子类对象,又因为子类对象有name和furColor两个属性,所以可以去调用,而"bigyellow"已经被赋给了父类的name属性,所以你再调用子类的name属性时就没有了,只能是null.

其实你程序里把子类都又重新定义一个name属性是多余的.

应该这样写.子类不要再定义name属性,而是直接super(name),这样的话,父类和子类都通用一个name属性,就不会出现错误了.而更加符合继承的思想.

Upcasting,上溯造型,有的书译作“向上转型”,是实现Java多态(Polymorphism) 的基石。

Casting指的是对象之间类型的转换。将一个对象的引用(Object

Reference)看作其父类对象的引用(Reference to base

type)叫做Upcasting(上溯造型或向上转型)。反之,将对象的引用看作其子类的引用叫Downcasting。

Upcating系统会自动替你去做,而Downcasting则需要强制类型转换。