在我的程序中,我有 4 个类,如下所示:
银行类
类 Branch 扩展了 Bank
类 Customer 扩展 Branch
类贷款延伸到客户
如果我想添加一个客户
,那么我会提供主函数中的所有参数。像:
customer(bank name, bank add, branch number, brunch add, customer info...)
从此构造函数中,银行信息通过使用 super()
等的 Customer
和 Branch
构造函数传递到 Bank
类。
问题是,当我创建扩展 Customer
类的 Loan
类时,我没有使用任何构造函数,而且我也不想使用它,因为我只想要 Customer
类中的一个变量。但我的编译器显示此错误,它说使用构造函数来获取 Bank
、Branch
和 Customer
构造函数的所有参数。
如何在不使用 Loan
类中的任何构造函数的情况下解决此问题?
最佳答案
避免在 Loan
类中使用 Customer
构造函数的最简单方法是不扩展Customer
。在决定扩展哪个类(如果有)时,应该使用“is a”测试。例如,Branch
是一个 Bank
,因此使用 class Branch extends Bank
是有意义的。但是,Loan
是 Customer
并没有真正意义,因此您不应该执行 class Loan extends Customer
。另一方面,客户
拥有贷款
;事实上,一个客户
可能有多个贷款
,或者根本没有。这意味着在 Customer
类中拥有一个 Loan
成员变量(或者可能是 Loan
的 List
,如果您了解了 Container API)是有意义的。
关于java - 不想在子类中使用构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12899949/