1

我必须创建类定义,它可以批准在引入构造函数时对象已经存在的论点。

我不知道如何解释这一点,我尝试过这样的事情,但它可能是错误的:

public class B {

  int obj;

  public B() {  

  }

    public static void main(String[] args) {

    B object = new B();
    System.out.println(object)

    }
}

我从第一次练习中编写的代码是:

public class Bulb {

static int a;

public Bulb(int ab) {
    a = ab;
}


public static void main(String[] args) {

    Bulb object = new Bulb(a);
    System.out.println(object);

}

它只有一个参数构造函数。

4

1 回答 1

1

在我们的长评论线程之后,听起来我们已经确定您正在做的是学习继承和多态模拟。您指定的 B 类必须从 Bulb 继承,并且您必须证明 Bulb 的构造函数在 B 的构造函数之前被调用。我不确定是否有比使用日志输出更好的方法。您的代码几乎拥有您需要的一切,除了扩展和记录器消息。你可以这样做:

public class Bulb{
    int ab;
    public Bulb(int ab){
        this.ab = ab;
        System.out.println("Bulb constructor is invoked");
    }

    // The rest of your Bulb class
}

在 B 类中,它扩展了 Bulb:

public class B extends Bulb{
    public B(int ab){
        // Call the super constructor, which in this case is the Bulb constructor
        super(ab);
        System.out.println("B constructor is invoked");
    }
    // The rest of your B class
}

那有意义吗?

编辑:我忘了提:在Java中,当你有一个继承结构时,构造函数总是从上到下调用​​。意思是,首先调用层次结构中最顶层的类(在这种情况下,这将是 Bulb),然后滴到底部(例如,您的 B 类)。

于 2012-11-11T22:04:49.813 回答