Javaのポリモーフィズムの使い道とは?処理を差し替えやすくする考え方|確認問題の回答例

このページは、Javaのポリモーフィズムの使い道とは?処理を差し替えやすくする考え方の確認問題を見直すためのページです。先に自分で考えてから、回答例と見比べてください。
第1問:回答例
OrderService が PaymentGateway 型で受け取ると、ProductionPaymentGateway や FakePaymentGateway のような具体クラスを直接知りすぎずに済みます。呼び出す側は pay() を呼べればよく、実際の決済処理は渡された実装に任せられます。
第2問:回答例
どちらのクラスも PaymentGateway を実装しており、同じ pay() メソッドを持っているからです。OrderService は具体クラスではなく PaymentGateway に対して処理を依頼しているため、呼び出し方は変わりません。
第3問:回答例
FakePaymentGateway を使うと、本物の決済サービスへ接続せずに注文処理を確認できます。外部サービスの状態や通信に左右されにくくなり、確認しやすいコードになります。