- 学习面向对象的时候,就自然会接触到向上造型了。很多人问我,向上造型有什么意义,向上造型什么时候使用。一开始我也很迷惑,究竟这个向上造型的作用在哪。后面我想明白了,于是作一小记:
- 首先明确三点:
- 子类没有重写父类的方法时,引用也就是实例化的对象是调用不到子类的方法的,即是只能调用父类的方法;
- 如果子类有重写了父类的方法时,引用能够并且只能调用到子类的该重写过的方法。
- 向上造型即是指:父类引用指向子类的对象。
- 那么有时候我们想用父类的方法又想特指用子类的方法,
- 通常一般做法可以是:声明两个引用分别实例化父类和子类,然后各自调用父类、子类的方法。
- 然而,当我们认识了向上造型之后,我们可以这样做:只声明一个父类引用变量实例化子类对象,如果想调用父类的方法那就无须重写,如果想调用子类的方法这时就作个重写(当然也可以将父类引用强制转换为子类对象引用,这样也可以访问到子类的方法)。我们也就不难理解向上造型可以大大提高程序的可扩展性,利于代码维护。