如果需要让引用变量调用它运行时类型的方法,则必须把它强制类型转换成运行时类型,强制类型转换需要借助于类型转换运算符。
如果是两个没有任何继承关系的类型,则无法进行类型转换
package chap5_7;
public class ConversionTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
double d=13.4;
long l=(long)d;
System.out.println(l);
int in=5;
Object obj="Hello";
String objStr=(String)obj;
System.out.println(objStr);
Object objPri=new Integer(5);
//String str=(String)objPri;
}
}
考虑到进行强制类型转换时可能出现异常,因此进行类型转换之前应通过instanceof运算符来判断是否可以成功转换。
这种转型只是表明这个引用变量的编译时类型是父类,但实际执行它的方法时,依然表现出子类对象的行为方式。