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+"";
}
}
上述两种转化 注视掉的那个怎么不可以还报错:
第二种就可以为什么啊
展开
 我来答
cs6641468
2011-07-25 · TA获得超过5713个赞
知道大有可为答主
回答量:863
采纳率:100%
帮助的人:993万
展开全部
Object类是所有类的父类,父类引用可以指向子类对象(这句话你可以通俗的理解为:子类可以转化为父类,就如你的Object obj = new ooo()) 。但父类对象不能转化为子类,所以你试图把obj转化为Integer是错的。

至于为什么子类可以转化为父类,因为子类肯定包含父类的所有属性和方法,所以父类可以被转化。但是父类不一定包含子类方法和属性,所以一旦转化,就可以出现子类有的属性或方法不能得到初始化,就会有异常。
追问
我迷糊记得好像转化规则有:父类转化子类 是“试着转化” 即能转化就转化,不能就报错
追答
父类转化子类只有一种情况可以,举个列子,假设两个类是Father 和Son ,Son继承Father
这时候写: Father father=new Son(); Son son=(Son)father; 只有这种情况是可以的。
也就是说:把父类转化成子类,除非这个父类本来就是由子类转化来的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式