对于类,有两种类型转换。
可以将子类的实例强制转换为其超类。
考虑下面的例子,假设猫是动物的一个子类。
Animal a = new Cat();
Java自动将Cat类型变量升级为动物类型。
将超类的对象强制转换为其子类称为向下强制转换。
例子:
Animal a = new Cat(); ((Cat)a).makeSound();
这将尝试将变量a强制转换为Cat类型并调用其makeSound()方法。
为什么向上转型是自动的,向下转型是手动的?好吧,升级永远不会失败。但如果你有一组不同的动物,想把它们都扔给猫,那么有可能这些动物中的一些实际上是狗,所以这个过程失败了。