自觉的第一天

对象的向上转型

其实就是多态写法:
格式:父类名称对象名= new子类名称(); Animal animal = new Cat0;
含义:右侧创建一个子类对象,把它当做父类来看待使用。eg.创建了一只猫,当做动物看待,没问题。
注意事项:

  • 向上转型一定是安全的。从小范围转向了大范围,从小范围的猫,向上转换成为更大范围的动物。

类似于:double num = 100; //正确,int --> double,自动类型转换。

对象的向下转型

其实是一个【还原】的动作。
格式:子类名称对象名=(子类名称)父类对象;含义:将父类对象,【还原】成为本来的子类对象。
Animal animal = new Cat();//本来是猫,向上转型成为动物
Cat cat = (Cat) animal;//本来是猫,已经被当做动物了,还原回来成为本来的猫
注意事项:

  • a.必须保证对象本来创建的时候,就是猫,才能向下转型成为猫。
  • b.如果对象创建的时候本来不是猫,现在非要向下转型成为猫,就会报错。
你凭什么比别人轻松,你配吗