1.对象的向上转型,其实就是多态写法:
格式:父类名称 对象名=new 子类名称(); Animal animal=new Cat();
含义:右侧创建一个子类对象,把它当做父类来看待使用。 创建了一只猫,当做动物对待,没问题。
注意:向上转型一定是安全的。从小范围转向了大范围,从小范围的猫,向上转为更大范围的动物。
2.向下转型,其实是一个还原的动作
格式:子类名称 对象名=(子类名称)父类对象;
含义:将父类对象,还原成为本来的子类对象。
Animal animal=new Cat(); --------->Cat cat=(Cat)animal;
注意事项:a.必须保证对象本来创建的时候就是猫,才能向下转型成为猫
b.如果对象创建的时候本来不是猫,非要向下转向成为猫,出错。
package Laptop;
public class Laptop {
public void powerOn(){
System.out.println("开机");
}
public void powerOff(){
System.out.println("关机");
}
public void useDevice(USB usb) {
usb.open();
if(usb instanceof Mouse){
Mouse mouse=(Mouse) usb;
mouse.click();