// PaymentProcessor クラス(抽象クラス)
abstract class PaymentProcessor {
// 支払いを処理する抽象メソッド
abstract void processPayment(double amount);
}
// CreditCardPaymentProcessor クラス(具象クラス)
class CreditCardPaymentProcessor extends PaymentProcessor {
// クレジットカードを認証するメソッド
void authorizeCreditCard() {
// クレジットカード認証の具体的な処理
}
// 支払いを処理するメソッドの実装
@Override
void processPayment(double amount) {
authorizeCreditCard();
// クレジットカード支払いの処理
System.out.println("Processing credit card payment of $" + amount);
}
}
// PayPalPaymentProcessor クラス(具象クラス)
class PayPalPaymentProcessor extends PaymentProcessor {
// PayPal アカウントを確認するメソッド
void verifyPayPalAccount() {
// PayPal アカウント確認の具体的な処理
}
// 支払いを処理するメソッドの実装
@Override
void processPayment(double amount) {
verifyPayPalAccount();
// PayPal 支払いの処理
System.out.println("Processing PayPal payment of $" + amount);
}
}
この解答例では、PaymentProcessor
クラスが抽象クラスであり、支払いの処理を行うための抽象メソッド processPayment
を提供しています。具象クラスとして CreditCardPaymentProcessor
と PayPalPaymentProcessor
があり、それぞれクレジットカード支払いと PayPal 支払いに特有のメソッドを提供しています。各具象クラスは抽象クラスの processPayment
メソッドを実装しています。これにより、共通の支払い処理が PaymentProcessor
クラスで定義され、具象クラスで特有の処理が追加されています。