如何严格遵循给定的 UML 在子类中定义字段?

How do I define a field in a subclass by strictly following a given UML?

我正在尝试使用 java 实现下面的 UML 图:

我最近才接触到UML,据我了解,我不能在SBank或​​PBank中设置一个字段来定义它们的利率。还可以看出,在 class 银行中,没有像使用 setter 方法那样定义利率的实现。我正在寻找有关如何解决这个问题的建议,或者给定的 UML 有问题吗?下面是我用来尝试将 UML 实现到代码中的一些示例代码:

public class BankInfo {
    private String name;

        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    }

public class Bank {
    private BankInfo info;
    private int rateOfInterest;

    public Bank(BankInfo info) {
        this.info = info;
    }

    public void displayInterestRate(){
    }

    public int getRateOfInterest(){
        return rateOfInterest;
    }
}

public class SBank extends Bank{
    private int rateOfInterest = 8;
    public SBank(BankInfo info) {
        super(info);

    }

    @Override
    public int getRateOfInterest() {
        return rateOfInterest;
    }
}

这个 UML:

不显示任何 class 中的任何 rateOfInterest 字段。它显示的是 Bank 是抽象的,并且有一个 int-returning 抽象方法:getRateOfInterest()。你可以看出 class 和方法是抽象的,因为它们的名字是斜体的。

public abstract class Bank {

    // other members...

    public abstract int getRateOfInterest();
}

UML 进一步表明您需要在 SBankPBank 中覆盖 getRateOfInterest(),这两个扩展 Bank 和 return 该实现的利率。您将直接 returning 值而不是将其存储在字段中。例如,SBank 看起来像:

public class SBank extends Bank {

    public SBank(BankInfo info) {
        super(info);
    }

    @Override
    public int getRateOfInterest() {
        return 8;
    }
}

我从 UML 图中得到了 8 的值:

Interest Rate of SBank is 8 %.