0

我希望能够访问从抽象类的子类实例化的对象。这是一个例子。

// A.java
public abstract class A {
  public int getNewNo() {
    int newNo = <Instance of B in this example here>.getNo() + 2;
    return newNo;
  }
}

// B.java
public class B extends A {
  public int getNo() {
    return 2;
  }
}

// C.java
public class C {
  public C(A a) {
    System.out.println("The number is "+a.getNewNo());
  }
}

// example.java
public void main(String args[]) {
  B b = new B();
  C c = new C(b);
  // should now print out "The number is 4"
}

这可能吗?

谢谢。

4

2 回答 2

5

尝试:

// A.java
public abstract class A {
  public abstract int getNo();

  public int getNewNo() {
    int newNo = getNo() + 2;
    return newNo;
  }
}
于 2013-07-19T09:40:01.743 回答
4
public abstract class A {
    public int getNewNo() {
        int newNo = getNo() + 2;
        return newNo;
    }

    abstract int getNo();
}

将完成这项工作。

于 2013-07-19T09:40:10.480 回答