强制转换都可以应用在那些情况,只能将父类对象强制转换成子类对象嘛,还有别的情况吗?作者: 张振宁 时间: 2012-1-13 23:53
数据类型的强制转换.
int a = (int)6.5l;
float b = (float)a;
或者定义一个obj类型的数组,存放对象,取出的时候强制转换成原来的原型。
Vector<Object> v = new Vector<Object>();
v.add(new Student());
v.add(new Teacher());
Student s = (Student)v.elementAt(0);
Teacher t = (Teacher)v.elementAt(1);作者: 李建平 时间: 2012-1-14 10:00
子类对象是可以转换成父类对象的
父类对象要转换成子类对象就得具体分析了,因为子类对象一般都比父类对象多一些东西(参数或方法),如果直接强制转换Son son = (Son)father; 这样有时会出错,java有个instanceof 可以先对father 和 son 进行一个判断,if(father instaceof Son);如果返回true则些父类对象可以转换成子类对象,反之则不行
一般:Father father = new Father(); Son son = (Son)father;这样是会出错的;
Father father = new Son(); Son son = (Son)father; 这种才不会出错;作者: 李建平 时间: 2012-1-14 10:04
public class Test5 {
public static void main(String[] args) {
Person p = new Student("lisi");//此父类对象可以转换成子类对象
Person p2 = new Person("zhaoliu");//此父类对象不可以转换成子类对象
//System.out.println(p.getName());
Student s = new Student("zhangsan","qinghe11zhong");
//System.out.println(s.getName()+":"+s.getSchool());
Person p3 = s;//子类对象可以转换成父类对象