天天看点

java基础之对象的向上转型和向下转型

对象的向上转型

格式:对象的向上转型就是多态写法:

父类名称 对象名=new 子类名称();

——>父类引用指向子类对象

含义:右侧创建一个子类对象,把它当做父类来使用

注意:向上转型一定是安全的,从小范围转向了大范围

弊端:一旦向上转型为父类,就无法使用子类特有方法;如果想使用,则需要用对象的向下转型(还原)

对象的向下转型

格式:

子类名称 对象名=(子类名称) 父类对象

含义:将父类对象还原为本来的子类对象

Animal animal=new Cat();//本来是猫,向上转型为动物

Cat cat=(Cat)animal;//本来是猫,已经被当做是动物,还原回来成为本来的猫

注意:

  1. 必须保证对象原来创建的时候就是猫,才能向下转型成为猫
  2. 如果对象创建的时候不是猫,现在非要向下转型成为猫,就会报类转换异常:

    ClassCastException