java - 不想在子类中使用构造函数

标签 java constructor super

在我的程序中,我有 4 个类,如下所示:

  • 银行类
  • 类 Branch 扩展了 Bank
  • 类 Customer 扩展 Branch
  • 类贷款延伸到客户

如果我想添加一个客户,那么我会提供主函数中的所有参数。像:

customer(bank name, bank add, branch number, brunch add, customer info...)

从此构造函数中,银行信息通过使用 super() 等的 CustomerBranch 构造函数传递到 Bank 类。

问题是,当我创建扩展 Customer 类的 Loan 类时,我没有使用任何构造函数,而且我也不想使用它,因为我只想要 Customer 类中的一个变量。但我的编译器显示此错误,它说使用构造函数来获取 BankBranchCustomer 构造函数的所有参数。

如何在不使用 Loan 类中的任何构造函数的情况下解决此问题?

最佳答案

避免在 Loan 类中使用 Customer 构造函数的最简单方法是扩展Customer。在决定扩展哪个类(如果有)时,应该使用“is a”测试。例如,Branch 是一个 Bank,因此使用 class Branch extends Bank 是有意义的。但是,LoanCustomer 并没有真正意义,因此您不应该执行 class Loan extends Customer。另一方面,客户拥有贷款;事实上,一个客户可能有多个贷款,或者根本没有。这意味着在 Customer 类中拥有一个 Loan 成员变量(或者可能是 LoanList,如果您了解了 Container API)是有意义的。

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

相关文章:

Java 泛型 : Is this safe enough?

java - log4j2 多个附加程序,config.xml 中的多个记录器

c++ - 是否多次调用多个继承的构造函数?

java - 保留对传递给 super 构造函数的新对象的引用

java - 应该删除(Object) 为删除(? super E)

Java 7 逃逸分析不起作用

java - Xamarin:Java 绑定(bind)项目 - 无法更改本地界面的可见性

c++ - RAII 捕获构造函数异常的方法

java - 让构造函数抛出异常是个好习惯吗?

强制在构造函数中调用 super() 的子类的 Java 解决方法?