怎么样才能将一个父类对象转换成一个子类对象?作者: 陈进 时间: 2012-11-9 21:52
我也不知道
,在线等答案作者: 王永荣 时间: 2012-11-9 22:39
要转换的对象前加个括号(子类类型) 如 (Student)Obj 将obj强制转换成Student作者: 许坤 时间: 2012-11-9 22:42
强制类型转换。如 public void meth(A a)
{
B b = (B)a;
}
但是,请确保a确实是B的实例否则会抛出异常!作者: 廖力 时间: 2012-11-9 22:43
package com.Lland.test;
public class A {
public void print(){
System.out.println("this is A");
}
}
public class B extends A {
public void print(){
System.out.println("this is B");
}
}
public class MainClass {
public static void main(String[] args) {
A a = new B();
B b1 = (B)a;
//B b2 = (B)new A();
a.print();
b1.print();
//b2.print();
}
}
复制代码
看上面的代码
A类是B类的的父类 B类是A类的子类
B类是能自动转到A类的
A a = new B();这句没有错
但是A类是不能向子类转换
B b2 = (B)new A();这句会抛出java.lang.ClassCastException的异常
有一种情况除外
A a = new B();
B b1 = (B)a;
用父类来实列来接收子类的实列 然后能强转回子类去作者: 舒远 时间: 2012-11-10 12:07
Father f = new Son();
if(f instanceof Son){//最好加上这个判断。更加安全
Son son = (Son)f;
}作者: 张综 时间: 2012-11-11 21:21
强制类型转换啊 。比如说
Animal ani=(Animal)new Cat();//括号里可以不写。
Cat cat =(Cat)ani//括号里必须写