对象的转型:
对象的向上转型
对象的向上转型,就是多态的写法。
格式:父类名称 对象名 = new 子类对象名称(); Animal animal = new Cat();
含义:右侧创建一个子类对象,把它当做父类来看。
注意事项:向上转型一定是安全的,从小范围转换成为大范围。
对象向下转型
向上转型的弊端
虽然向上转型是安全的,但是对象一旦向上转型,那么就无法调用子类原本的特有的方法和属性,为此这里引入向下转型转型来还原。
格式:
子类名称 对象名 = (子类名称) 父类对象;
含义:将父类对象(还原)成为本来的子类对象。
Animal animal = new Cat(); //本来就是猫,向上转型成为动物。
Cat cat = (Cat)animal; //本来就是猫,已经被转型为动物。还原回来成为本来的猫。
注意事项:
- 必须保证对象本来创建的时候,就是猫,才能向下转型成为猫。
- 如果对象创建的时候本来不是猫。现在非要向下转型成为猫,就会报错。