在我的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类方法?是否存在解决上述情况的替代方式? Plz帮助
答案 0 :(得分: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();
}