/* 継承の使用例.BankAccountのサブクラスとしてBankAccount2を定義. BankAccount2は預け入れに加えて引出しもできる. (これは説明のための例である.本当はwithdrawも BankAccountクラス中で実装するほうが自然.) */ class BankAccount { // フィールドがprivateだとサブクラスでアクセスできない. String name; // 名前 int number; // 口座番号 int balance; // 残高 public BankAccount (String name, int number) { this.name = name; this.number = number; this.balance = 0; } void deposit (int amount) { // 預金する balance += amount; } } // 引き出しもできる銀行口座クラス class BankAccount2 extends BankAccount { public BankAccount2 (String name, int number) { super(name, number); // スーパークラスのコンストラクタを呼び出す } int withdraw (int amount) { // 引き出す if (balance >= amount) { // 残高が十分なら balance -= amount; // 引き出す return amount; } else { return 0; // 引き出せなかった } } public static void main (String[] args) { BankAccount2 b2 = new BankAccount2("Taro", 1234567); b2.deposit(10000); b2.withdraw(6000); System.out.println(b2.balance); } }