我正在尝试使用和理解子类中正确的构造函数。让我们从一些代码开始:
// 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
时,我将accountNumber
和personalNumber
发送到子类中的构造函数。但我做得对吗? (它没有用!)我是否会在子类中使用super来获取超类构造函数的内容?
由于子类只从超类而不是构造函数继承数据名和方法,我很好奇如何做到这一点?
答案 0 :(得分:9)
你没有指定什么不起作用,所以我认为这是简单的invokation错误:
public CreditAccount(int aNumber, int pNumber) {
super(accountNumber, personalNumber);
}
你应该用相关的参数调用super()
,这些参数是派生类`构造函数的输入:
public CreditAccount(int aNumber, int pNumber) {
super(aNumber, pNumber);
}