![](https://img.haomeiwen.com/i8331536/da784d1586295c5d.png)
内容导航:
- 前言
- 1、类型转换
- 2、向上造型
- 3、向下造型
1、类型转换
当存在多态环境时,有时候需要类型转换。这里将涉及到一个概念叫 强制类型转换,但是记住,强制是有前提的,只能强制转换成这个对象的运行期类型>
例如
Animal animal=new Cat();
Cat cat=(Cat)animal;
因为animal的运行期类型确实是Cat,所以才可以强制转换成Cat
如果 Dog dog=(Dog)animal;
将发生ClassCastException。
2、向上造型
向上造型,又称自动类型提升,它能提高程序的扩展性。
示例代码:
class Animal{
abstract void eat();
}
class Cat extends Animal{
void look() {
System.out.println("看家");
}
}
………
Animal x=new Cat() //向上造型,Cat对象提升到Animal对象
x.eat() //只能使用父类中的方法
x.look() //报错!不能使用子类中的方法
3、向下造型
向下造型,又称向下转型。它能让我们使用子类中的特有方法。
示例代码:
class Animal{
abstract void eat();
}
class Cat extendsAnimal{
void look() {
System.out.println("看家");
}
}
Animal x=new Cat()
Cat m=(Cat)x; //向下转型
m.eat() ;
m.look();//子父类中的方法都可以使用
持续更新,欢迎留言提议!
码字很累,多点赞多赞赏!
![](https://img.haomeiwen.com/i8331536/d14151a05112b1fa.png)
网友评论