- class A
- {
- String a="class A";
- }
- class B extends A
- {
- String b="class B";
- }
- class Test
- {
- public static void main(String[] args)
- {
- A a1,a2=new A();
- B b1,b2=new B();
- a1=b2;
- b1=(B)a1;
- //b2=(B)a2;
- System.out.println(a1.a);
- System.out.println(b1.b);
- }
- }
复制代码 刚看到一个题,我知道子类的对象可以赋给父类的对象,那父类的对象可以赋给子类吗?我注释掉的b2=(B)a2;在编译时没有错,运行时显示有错,A cannot be cast to B。而b1=(B)a1;却又为啥是对的?
|