public class A{
String strA;
}
public class A extends{
String strB;
}
--------------------------
B b = new B();
b.setStrB("bbbb");
b.setStrA("aaaa");
A a = new A();
System.out.println(a);
a = (A) b
System.out.println(a);
--------------------------
显示结果
com.A@17e8c5b
com.B@8a6351说明a = (A) b之后 其实是将父类指向子类 但隐藏了子类扩展的属性而已
--------------------------
请问 如何获得一份com.A@17e8c5b的父类 它的strA是通过子类获取到的?
万分感谢···

解决方案 »

  1.   

    居然不能修改帖子```5555
    写错了 应该是
    public   class   A{
    String   strA;
    }
    public   class   B   extends A{
    String   strB;
      

  2.   

    B   b   =   new   B(); //b是类B一个对象的引用
    b.setStrB("bbbb"); 
    b.setStrA("aaaa"); 
    A   a   =   new   A(); //a是类A一个对象的引用
    System.out.println(a); 
    a   =   (A)   b        //将b转化为A累的一个对象的引用
    System.out.println(a); 
    a和b都是对象的引用 相当于一个地址吧 
    一个地址怎么还有父类呢?
      

  3.   

    子类B继承了父类的属性strA,子类通过子类的对象就能取strA,你要父类取自己的属性用super.strA就可以了.你写的有点乱七八糟,打印出来的a是地址.setStrA和setStrB的方法呢?
      

  4.   

    获得一份com.A@17e8c5b的父类? 那个A不就已经是父类了么
    对象a直接可以取strA啊
      

  5.   

    获得一份com.A@17e8c5b的父类? 那个A不就已经是父类了么
    对象a直接可以取strA啊
      

  6.   

    如何获得一份com.A@17e8c5b的父类   它的strA是通过子类获取到的?非常不幸的告诉你,不行com.A@17e8c5b 代表当前类的实例是父类,它不可能访问到子类的东西。