對象的向上轉型
格式:對象的向上轉型就是多态寫法:
父類名稱 對象名=new 子類名稱();
——>父類引用指向子類對象
含義:右側建立一個子類對象,把它當做父類來使用
注意:向上轉型一定是安全的,從小範圍轉向了大範圍
弊端:一旦向上轉型為父類,就無法使用子類特有方法;如果想使用,則需要用對象的向下轉型(還原)
對象的向下轉型
格式:
子類名稱 對象名=(子類名稱) 父類對象
含義:将父類對象還原為本來的子類對象
Animal animal=new Cat();//本來是貓,向上轉型為動物
Cat cat=(Cat)animal;//本來是貓,已經被當做是動物,還原回來成為本來的貓
注意:
- 必須保證對象原來建立的時候就是貓,才能向下轉型成為貓
- 如果對象建立的時候不是貓,現在非要向下轉型成為貓,就會報類轉換異常:
ClassCastException