简体   繁体   English

如何访问从Java中抽象类的子类实例化的对象?

[英]How do I access the object that's been instantiated from the abstract class's subclass in java?

I would like to be able to access the object that's been instantiated from the abstract class's subclass. 我希望能够访问从抽象类的子类实例化的对象。 Here's an example. 这是一个例子。

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

Is this possible? 这可能吗?

Thanks. 谢谢。

Try: 尝试:

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

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

    abstract int getNo();
}

Will do the job. 会做的工作。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Java:如何在抽象类中引用子类的静态变量? - Java: How to refer to subclass's static variable in abstract class? JAVA:如何访问另一个对象的子类? - JAVA: How to access another object's subclass? Java:如何将克隆的对象转换为它的原始子类? - Java: How do I cast a cloned object to it's original subclass? Java-从对象的类确定对象的实例化位置 - Java - determine where an object is instantiated from object's class 如何从具体子类中的重写方法访问通过抽象类中的构造函数实例化的对象的属性? - How to access the attributes of an object instantiated via a constructor in an abstract class, from an overridden method in a concrete child class? 如何从Class对象运行抽象方法来扩展Java中的抽象类? - How do I run an abstract method from Class object extending abstract class in Java? Java:如何通过调用父类的子类获取对象 - Java: How to get the object of a subclass by calling it's parent class Java - 无法从子类对象访问抽象方法 - Java - Cannot Access Abstract Method from Subclass Object 如何使用在不同类中实例化的对象的方法? - How do I use methods from an object instantiated in a different class? 如何从未在Java中实例化的类中调用方法? - How do I call a method from a class that was not instantiated in Java?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM