对象的向上转型(无条件正确)
对象的向上转型,其实就是多态写法:
格式:父类名称 对象名 = new 子类名称();
eg:Animal animal = new Cat();
对象的向下转型(需要前提条件)
格式:子类名称 对象名 = (子类名称) 父类对象;
将父类对象,【还原】成为本类的子类对象。
eg: Animal animal = new Cat();
Cat cat = (Cat) animal
类似于: int num=(int) 10.0;
注意:
- 必须保证对象本来创建的时候,就是猫,才能向下转型成为猫。
- 如果对象创建时候本来不是猫,现在非要向下转型成为猫,就会报错。
因为父类对象是没有办法调用子类中特有的成员方法的,所以向下转型成子类就可以调用了。
如何才能知道一个父类引用的对象,本来是什么子类?
使用instanceof方法来判断它的子类。
格式:对象 instanceof 类名称
eg:animal instanceof Cat
这将会得到一个boolean值结果,也就是判断前面的对象能不能当做后面类型的实例