java 中Integer和 OBject转化的简单问题
publicclassInteger_Object{publicstaticvoidmain(String[]args){Objectobj=newooo();//Int...
public class Integer_Object {
public static void main(String[] args){
Object obj = new ooo();
// Integer i = (Integer) obj;
Integer i = Integer.parseInt(obj.toString());
System.out.println(i);
}
}
class ooo{
public String toString(){
return 1+"";
}
}
上述两种转化 注视掉的那个怎么不可以还报错:
第二种就可以为什么啊 展开
public static void main(String[] args){
Object obj = new ooo();
// Integer i = (Integer) obj;
Integer i = Integer.parseInt(obj.toString());
System.out.println(i);
}
}
class ooo{
public String toString(){
return 1+"";
}
}
上述两种转化 注视掉的那个怎么不可以还报错:
第二种就可以为什么啊 展开
1个回答
展开全部
Object类是所有类的父类,父类引用可以指向子类对象(这句话你可以通俗的理解为:子类可以转化为父类,就如你的Object obj = new ooo()) 。但父类对象不能转化为子类,所以你试图把obj转化为Integer是错的。
至于为什么子类可以转化为父类,因为子类肯定包含父类的所有属性和方法,所以父类可以被转化。但是父类不一定包含子类方法和属性,所以一旦转化,就可以出现子类有的属性或方法不能得到初始化,就会有异常。
至于为什么子类可以转化为父类,因为子类肯定包含父类的所有属性和方法,所以父类可以被转化。但是父类不一定包含子类方法和属性,所以一旦转化,就可以出现子类有的属性或方法不能得到初始化,就会有异常。
追问
我迷糊记得好像转化规则有:父类转化子类 是“试着转化” 即能转化就转化,不能就报错
追答
父类转化子类只有一种情况可以,举个列子,假设两个类是Father 和Son ,Son继承Father
这时候写: Father father=new Son(); Son son=(Son)father; 只有这种情况是可以的。
也就是说:把父类转化成子类,除非这个父类本来就是由子类转化来的
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询