梦想吧

34 分类: Java

Java学习笔记(三) - 向上转型与向下转型

Student s = new Student();

例子定义一个Student类型的变量s,指向Student的实例

向上转型

这种把一个子类类型安全地变为父类类型的赋值,被称为向上转型(upcasting)。
例如:

Person p = s;

将变量s的类型转换为Person

向下转型

和向上转型相反,如果把一个父类类型强制转型为子类类型,就是向下转型(downcasting)。例如:

Person p = new Student();
Student s = (Student) p;

p向下转型实例类型必须为Student,因为子类Student功能比父类Person多,不可能凭空变出来,所以当实例不为Student时,向下转型会失败。

在向下转型前可以使用instanceof判断实例类型,当判断返回true时即可转型成功,例如:

if(p instanceof Student){
    Student s = (Student) p;
}

#Java

作者: Jim

版权: 除特别声明,均采用BY-NC-SA 4.0许可协议,转载请表明出处

目录Content

评论