diff --git a/src/CardPayment.java b/src/CardPayment.java new file mode 100644 index 0000000..4908cae --- /dev/null +++ b/src/CardPayment.java @@ -0,0 +1,11 @@ +class CardPayment implements PaymentMethod { + @Override + public void pay(int amount) { + System.out.println("Pay card: " + amount + " грн"); + } + + @Override + public String name() { + return "Card"; + } +} diff --git a/src/Main.java b/src/Main.java new file mode 100644 index 0000000..c51bb1c --- /dev/null +++ b/src/Main.java @@ -0,0 +1,16 @@ +//TIP To Run code, press or +// click the icon in the gutter. +public class Main { + public static void main(String[] args) { + PaymentProcessor processor = new PaymentProcessor(); + PaymentMethod card = new CardPayment(); + PaymentMethod paypal = new PaypalPayment(); + processor.process(card, 1000); + processor.process(paypal, 500); + System.out.println(); + card.payWithFee(1000, 25); + paypal.payWithFee(500, 10); + } +} + + diff --git a/src/PaymentMethod.java b/src/PaymentMethod.java new file mode 100644 index 0000000..63a9194 --- /dev/null +++ b/src/PaymentMethod.java @@ -0,0 +1,14 @@ +interface PaymentMethod { + String name(); + + void pay(int amount); + + default void payWithFee(int amount, int fee) { + int totalAmount = amount + fee; + System.out.println("Total amount to pay: " + totalAmount); + pay(totalAmount); + } +} + + + diff --git a/src/PaymentProcessor.java b/src/PaymentProcessor.java new file mode 100644 index 0000000..da617eb --- /dev/null +++ b/src/PaymentProcessor.java @@ -0,0 +1,6 @@ +class PaymentProcessor{ + public void process(PaymentMethod method, int amount) { + System.out.println("Processing payment with " + method.name()); + method.pay(amount); + } +} \ No newline at end of file diff --git a/src/PaypalPayment.java b/src/PaypalPayment.java new file mode 100644 index 0000000..c6f5100 --- /dev/null +++ b/src/PaypalPayment.java @@ -0,0 +1,11 @@ +class PaypalPayment implements PaymentMethod { + @Override + public String name() { + return "PayPal"; + } + + @Override + public void pay(int amount) { + System.out.println("Paying " + amount + " using PayPal."); + } +}