关于super在子类构造函数中?

时间:2012-01-02 11:11:39

标签: java inheritance constructor

我正在尝试使用和理解子类中正确的构造函数。让我们从一些代码开始:

// creating an object
 account = new CreditAccount(accountNumber, personalNumber);

// constructor in superclass Account
public Account(int aNumber, int pNumber) {
accountNumber = aNumber;
personalNumber = pNumber;
}

// constructor in the subclass CreditAccount
public CreditAccount(int aNumber, int pNumber) {
super(accountNumber, personalNumber);
}

当我创建新对象creditAccount时,我将accountNumberpersonalNumber发送到子类中的构造函数。但我做得对吗? (它没有用!)我是否会在子类中使用super来获取超类构造函数的内容?

由于子类只从超类而不是构造函数继承数据名和方法,我很好奇如何做到这一点?

1 个答案:

答案 0 :(得分:9)

你没有指定什么不起作用,所以我认为这是简单的invokation错误:

public CreditAccount(int aNumber, int pNumber) {
   super(accountNumber, personalNumber);
}

你应该用相关的参数调用super(),这些参数是派生类`构造函数的输入:

public CreditAccount(int aNumber, int pNumber) {
   super(aNumber, pNumber);
}