5
比如
String a = "hello";
Object b = a;
这样可以直接用,而
Object a = "hello";
String b = (String)a;
需要在a前面加String才能通过编译。
String类不是Object类的子类么,那么String应该继承Object类了,那为什么父类的变量可以直接用子类的对象,而子类不能直接用父类的? 收起
String a = "hello";
Object b = a;
这样可以直接用,而
Object a = "hello";
String b = (String)a;
需要在a前面加String才能通过编译。
String类不是Object类的子类么,那么String应该继承Object类了,那为什么父类的变量可以直接用子类的对象,而子类不能直接用父类的? 收起
推荐于2016-11-05 14:24:50
最佳答案
String b = (String)a; 这样叫向下转型,需要精确指定类型。
可以这样理解 假设a是人(Ojbect) b是孩子(String), String b = a; 这句话可以理解为人是孩子,这样不太对,是吧? 因为人可能不是孩子,所以精确一下 加上个修饰(String 可以理解成定语)变成String b = (String)a; 这样就能保证实例化的是一个孩子对象(String b)
其他回答
子类是继承父类的,那么子类可能有自己独特的一些方法和属性是父类没有的
而所有父类的公开(public)方法都会被子类所拥有。
简单说,子类可以调用所有父类的public(protected因为外部无法访问,这里不提)方法,而父类却不能调用子类独特的方法,所以,子类可以直接转换为父类,而父类是无法转换为子类的
而所有父类的公开(public)方法都会被子类所拥有。
简单说,子类可以调用所有父类的public(protected因为外部无法访问,这里不提)方法,而父类却不能调用子类独特的方法,所以,子类可以直接转换为父类,而父类是无法转换为子类的
EvilProxy
发布于2011-11-10 21:58
举报
评