java父类对象给子类对象赋值强制转换后子类对象的属性是怎么一回事
classa{Stringa="a";}classbextendsa{Stringb="b";}classc{aa1,a2=newa();bb1.b2=newb();b1...
class a{
String a="a";}
class b extends a {
String b="b";}
class c{
a a1, a2=new a();
b b1.b2=new b();
b1=(b)a2;
System.out.println(b1.b);
为什么无法输出呢?? 展开
String a="a";}
class b extends a {
String b="b";}
class c{
a a1, a2=new a();
b b1.b2=new b();
b1=(b)a2;
System.out.println(b1.b);
为什么无法输出呢?? 展开
2013-10-21
展开全部
代码要写在代码块、方法里面。
class c{
public static void main(String args[]){
a a1, a2=new a();
b b1.b2=new b();
b1=(b)a2;
System.out.println(b1.b);
}
}
但还不能用的,因为
b1=(b)a2; /// a2本来是a的实例,转换失败。
class c{
public static void main(String args[]){
a a1, a2=new a();
b b1.b2=new b();
b1=(b)a2;
System.out.println(b1.b);
}
}
但还不能用的,因为
b1=(b)a2; /// a2本来是a的实例,转换失败。
追问
我知道不能转换。。可是为什么呢??子类对象不是能给父类对象赋值么?
追答
你这个案例,体现不了你说的要求。
class A{
String a="a";
}
class AA extends A {
String aa="aa";
}
public class TestAA{
public static void main(String args[]){
AA b=new AA(); //子类的实例
b.a="a from AA"; //这里设置值,a 是父类的属性。
System.out.println(b.a);
System.out.println(b.aa);
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
实例化的对象要写在主函数中才能输出,不然你这个方法要通过主函数调用才能执行。java的运行机制,都是先找到main方法,然后在执行main方法中的调用,你可以写个main方法,然后多写几个方法,其中一个方法进行调用,一个方法不进行调用就可以知道,只有经过main方法调用的方法才会执行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
么看懂你想问什么
追问
呃。。。就是这个程序为什么无法输出b1.b??谢谢啦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询