java - 如何访问java中抽象类的子类实例化的对象?

标签 java class instance abstract-class subclass

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

// 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"
}

这可能吗?

谢谢。

最佳答案

尝试:

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

  public int getNewNo() {
    int newNo = getNo() + 2;
    return newNo;
  }
}

关于java - 如何访问java中抽象类的子类实例化的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17742793/

相关文章:

Java - 强制 super() 调用使用特定依赖项中的构造函数

java - 引用与现有类型同名的类

.net - 在 .Net 中,如何检查两个标识符是否指向一个对象的同一实例?

c# - 使用类和存储过程将数据插入 C# (Visual 2015) 中的 SQL Server 2014

c# - 如何在声明时使用其父实例实例化属性

java - 有人可以帮助我了解我的战斗机类别中的攻击方法吗

java | .clear() 函数的问题

java - 如何获取 ScheduledThreadPoolExecutor 中正在执行的作业?

java - 使用cmd安装元数据库

Python 'str' 对象在使用函数变量调用类实例时没有属性 'name'