子类可以向父类转换
编译和运行时是不同的对象
Audi类和BMW类都为Car类的子类,所以可以用
public void goToWork(Car car){
car.drive();
}
替代
public void goToWork(Audi audi){
audi.drive();
}
public void goToWork(BMW bmw){
bmw.drive();
}
这就是多态
使用情况:编译和运行时的对象是有继承关系的 BMW,Audi->Car
只能子类对象传给父类对象,反之不行
如果要使用子类独有的属性或者方法,需要强制转换为子类对象
Car car;
//判断:
if(car instanceof BMW){//判断这个car对象是否为某个类的父类
BMW bmw = (BMW)car;
bmw.dirve();//drive指BMW特有的方法
}