この要件に基づいて次のコードをコンパイルしようとすると問題が発生します。
口座所有者の名前に対応する文字列を受け入れるコンストラクター。口座残高に対応する double を返す getBalance メソッド。double を受け入れ、アカウント残高から金額を差し引くメソッドを引き出します。次を含むサブクラス CheckingAccount のクラス定義を記述します。ブール型インスタンス変数、overdraft。(当座預金口座に当座貸越があると、現在の残高よりも大きな小切手を書くことができます)。String とブール値を受け入れるコンストラクター。String パラメーターはスーパークラス (BankAccount) コンストラクターの呼び出しに使用され、boolean は当座貸越インスタンス変数の初期化に使用されます。ブール値を返す hasOverdraft メソッド。アカウントが当座貸越をサポートしている場合、hasOverdraft は true を返します。方法、double を受け入れてブール値を返す clearCheck。clearCheck は、(小切手の) 金額が現金化できるかどうかを判断します。これは、金額が口座の残高よりも少ない場合、または口座が当座貸越を許可している場合に当てはまります。小切手を換金できる場合、clearCheck は true を返し、withdraw メソッドを呼び出して口座残高を更新します。それ以外の場合、clearCheck は false を返します。
コード:
public class CheckingAccount extends BankAccount {
private boolean overdraft;
public CheckingAccount(String a, boolean overdraft) {
this.name = super.name;
this.overdraft = overdraft;}
boolean hasOverdraft() {if(overdraft); return true;}
boolean clearCheck(double checkAmount) {if(checkAmount < balance || hasOverdraft() == true); return true && withdraw();}
}
エラー:
CheckingAccount.java:4: error: constructor BankAccount in class BankAccount cannot be applied to given types;
public CheckingAccount(String a, boolean overdraft) {
^
required: String
found: no arguments
reason: actual and formal argument lists differ in length
CheckingAccount.java:5: error: name has private access in BankAccount
this.name = super.name;
^
CheckingAccount.java:5: error: name has private access in BankAccount
this.name = super.name;
^
CheckingAccount.java:10: error: method withdraw in class BankAccount cannot be applied to given types;
boolean clearCheck(double checkAmount) {if(checkAmount < balance || hasOverdraft() == true); return true && withdraw();}