gpt4 book ai didi

java - Java中如何让子类继承一个没有值的变量?

转载 作者:行者123 更新时间:2023-12-02 10:09:44 26 4
gpt4 key购买 nike

我有一个 BankAccount 抽象类,它有两个子类 - SavingsAccount 和 CreditAccount。两个子类共享一组具有不同值的变量,例如SavingsAccount 的利率为 1%,CreditAccount 的利率为 0.5%。由于他们还共享几个使用interestRate变量的方法,我希望他们继承该变量和使用它的方法(而不是两次编写这些方法)。

我可以以某种方式让子类继承interestRate变量并在子类中给它我想要的值,还是有其他方法来解决这个问题?

最佳答案

有两种方法可以做到这一点(至少);

  1. 为您的基类提供一个构造函数(不用担心,它仍然是抽象的)来初始化实例变量,并为变量提供 protected 访问器。

  2. 保护实例变量。

示例:

abstract class BankAccount {
private BigDecimal interestRate;

protected BankAccount(BigDecimal interestRate) {
this.interestRate = interestRate;
}

protected BigDecimal getInterestRate() {
return this.interestRate;
}
}

class SavingsAccount extends BankAccount {
public SavingsAccount(BigDecimal interestRate) {
super(interestRate);
}
// ...code in methods can use `this.getInterestRate()`...
}

或者(但我推荐):

abstract class BankAccount {
protected BigDecimal interestRate;

protected BankAccount(BigDecimal interestRate) {
this.interestRate = interestRate;
}
}

class SavingsAccount extends BankAccount {
public SavingsAccount(BigDecimal interestRate) {
super(interestRate);
}
// ...code in methods can use `this.interestRate` directly...
}

关于java - Java中如何让子类继承一个没有值的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55086548/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com