方法一:
B类里声明一个静态变量bb,在B构造时赋值为this,A类对象方法调用时,使用B.bb就可以了。
Class B extends A{public static B bb;
    public B(){
        super();
        bb=this;
    }
...
}Class A{
    public void do(...){
        //get B.bb
    }
}
方法二:
A类的DO方法中,把B对象作为参数传入。
public void do(Object obj,B bb){
...
}
调用时,把B对象作为参数传入即可。
方法三:...自己想其他方法吧。:)

解决方案 »

  1.   

    从你举的例子来看,用this就可以了.但并不是传给父类的,实际上执行的是子类从父类那里继承来的do方法.
      

  2.   

    public class A 
    {
    private String str="A";

    public void doit()
    {
                   System.out.println(str); }
    }class B extends A
    {
         private String str="B";
         public void dodoit(){
         this.doit();
         }
        
         public static void main(String[] args){
         B b=new B();
         b.dodoit();
         }
    }
    执行的结果是打印A。
      

  3.   

    父类A没有办法得不到子类B,但B可以得到他的父类A,对B调用getClass()得到一个Class类,里面有得到父类的方法。
      

  4.   

    父类不可能知道子类的确切型别,子类把自己的对象传给父类,只能是向上转型到父类的型别,才能被父类收到。
    两种办法(其实就是一种),一就是父类有一个自己或自己超类型的 public or protected 变量,子类可以给这个变量赋值,即把这个变量传给父类。
    class A {
        protected A a;
    }
    class B extends A {
        void bbb() {
            a=this;
        }
    }
    第二种就是父类有 public or protected 方法含有自己或自己超类型的参数。
    class A {
        protected void aaa(A a) {
        }
    }
    class B extends A {
        void bbb() {
            aaa(this);
        }
    }
      

  5.   

    使用抽象类:
    class t1{
    public void do(Object o)
    {
                   t1 t=getA();
                   ... }
       t1 getA();
    }
    class t2 extends t1{
       t1 getA(){
           return this;
       }
    }但还是觉得这样模式不对
      

  6.   

    目前我使用的方法是.
    class a{
       public  Object self = null;
       doSelf()
       {
            //处理self   
       }
    }
    class b extends a {
       public b()
      {
        super();
        super.self = this;
      }
    }
    ---------------------
    这个方法感觉  super.self = this;
    这很不美观,想找一个比较好的方法
      

  7.   

    有一点晕!
    不过,个人觉得应该写一个类 C  ,
    A和B都继承自C,然后在A里声明调用B类的实例,
    class C
    {
      ...
    }class A:extends C

      do(B tmpB)
      ....
    }
    class B:extends C
    {
       A tmpA = new A();
       A.do(this);
    ]
      

  8.   

    你的要求我弄不清楚,不过我觉得,子类可以通过上溯造型获得父类的方法,不知道你说的把自己传给父类的要求:
    class A{
     public void a1(A a){
     ……
      }
    }class B{
      B b = new B();  
      A a = new A();
      a.a1(b);
    }
    你是不是要实现这样的方法?
      

  9.   

    不是 farmer0512(遡风而立者)  你想的这个是吧自己的实例传给自己的实例的父类。