子類可以向父類轉(zhuǎn)換
編譯和運行時是不同的對象

image.png
Audi類和BMW類都為Car類的子類,所以可以用
public void goToWork(Car car){
car.drive();
}
替代
public void goToWork(Audi audi){
audi.drive();
}
public void goToWork(BMW bmw){
bmw.drive();
}
這就是多態(tài)
使用情況:編譯和運行時的對象是有繼承關(guān)系的 BMW,Audi->Car
只能子類對象傳給父類對象,反之不行
如果要使用子類獨有的屬性或者方法,需要強制轉(zhuǎn)換為子類對象
Car car;
//判斷:
if(car instanceof BMW){//判斷這個car對象是否為某個類的父類
BMW bmw = (BMW)car;
bmw.dirve();//drive指BMW特有的方法
}