java - 关于子类构造函数中的 super?

标签 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 来获取父类(super class)构造函数的内容吗?

由于子类仅从父类(super class)继承数据成员和方法,而不是构造函数,我很好奇如何正确执行此操作?

最佳答案

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

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

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

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

关于java - 关于子类构造函数中的 super?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8700128/

相关文章:

Java 7 的 nio.file 包在创建新文件时非常慢

java - 使用 Java 保留变量作为名称

java - java中一个类的内存分配?

java - 如何实现继承的抽象方法?

grails - 用父信息建立新的obj

python - 构造函数 B 未在 A -> B -> C 继承链中调用

java.lang.RuntimeException : Unable to instantiate @Form class. 没有无参数构造函数

c++ - '{' token 之前的预期类名 - 带有头文件和 cpp 文件

java - 扩展类构造函数被调用两次

java - 无法在Log4j2中实现TcpSocketServer