"这是一份2019-2020第二学期计算机学院的《JAVA程序设计》考试试卷A卷,包含了关于类定义、构造函数以及继承的问题。试卷主要涉及BankAccount基类,以及SavingsAccount和CheckingAccount两个派生类的实现。"
在Java编程中,类和构造函数是核心概念,它们用于创建对象并初始化其属性。题目中提到了三个类:BankAccount、SavingsAccount和CheckingAccount。BankAccount是基础类,拥有账户余额(myBalance)属性和相关的操作方法,如存款(deposit)、取款(withDraw)以及获取余额(getBalance)。SavingsAccount和CheckingAccount都是BankAccount的子类,分别代表储蓄账户和支票账户。
1. **构造函数**:
- `BankAccount`类有两个构造函数:一个无参构造函数,用于创建余额为0的账户;另一个带参数的构造函数,接受初始余额作为输入。
- `SavingsAccount`类需要两个构造函数:一个是缺省构造函数,另一个是带参数的构造函数,可能需要初始化存款利息(myInterestRate)和账户初始余额。
- `CheckingAccount`类同样需要至少一个构造函数,用于设置初始余额,同时考虑到可能存在的手续费和最低余额限制。
2. **继承**:
- SavingsAccount和CheckingAccount都继承了BankAccount,这意味着它们自动获得了BankAccount的所有属性和方法。继承允许在子类中扩展或重写父类的功能,提高代码复用性。
3. **SavingsAccount的addInterest()方法**:
- 这个方法应该用于计算并添加利息到账户余额。通常,我们需要考虑利息的计算方式,例如按年利率计算,然后根据时间(月、季度、年)进行调整。实现可能包括确定利息计算周期,计算应得利息,然后将利息添加到myBalance中。
4. **CheckingAccount的withDraw()方法**:
- 按照描述,这个方法除了从账户中减去取款金额外,还需要处理特殊情况。如果取款后余额小于MIN_BALANCE(50.0),则需要扣除手续费(FEE,2.0)。这可能导致账户余额为负值,允许透支。
5. **类设计**:
- SavingsAccount和CheckingAccount的设计考虑了不同类型的账户特性。储蓄账户关注利息,而支票账户则涉及到取款手续费和可能的透支情况。这些特性通过类的属性(如myInterestRate和FEE)和方法(如addInterest和withDraw)体现出来。
在解答此类问题时,考生需要理解类的定义、构造函数的作用,以及如何在继承层次结构中扩展和重定义功能。同时,还要具备面向对象编程的基本概念,如封装、继承和多态。