-1

在我的 java 应用程序中,我想解决以下场景

class C {

}

Class A extends C {
    public A() {
        B objB=new B(this);
        objB.methodA();
    }

    public void methodX() {

    }
}

Class B {
    private A objA;
    public B(A a) {
        objA=a; 
    }
    public void methodA() {
        objA.methodX()
    }
}

是否可以从 B 类调用 A 的 methodX()。当我编译代码时,objA(在 B 类中) 只能访问 C 类方法?是否存在解决上述情况的替代方法?请帮忙

4

1 回答 1

1

除了您尝试做的事情毫无意义并且代码很奇怪之外,它在语义上没有任何问题。我只是像下面这样尝试过。

package com.test;

public class So {

    /**
     * @param args
     */
    public static void main(String[] args) {
        A a = new A();
        B b = new B(a);
        b.methodA();

    }

}

class A extends C {

    public A() {

        B objB = new B(this);
        objB.methodA();
    }

    public void methodX() {

    }

}

class B {

    private A objA;

    public B(A a) {

        objA = a;

    }

    public void methodA() {

        objA.methodX();

    }
}

class C {

}

这是main(String[] args)方法的另一个变体:

public static void main(String[] args) {        
        C ca = new A();
        B b2 = new B((A)ca); // This is typcasting
        b2.methodA();

    }
于 2012-06-21T04:02:21.903 回答