How would you design a payment system using abstract classes
nd interfaces?
- Use an interface for common operations: IPayment.
- Use an abstract class for shared behavior like logging.
interface IPayment { void Pay(decimal amount); }
bstract class PaymentBase : IPayment
{
public abstract void Pay(decimal amount);
public void Log(string message) => Console.WriteLine(message);
}
class CreditCardPayment : PaymentBase
{
public override void Pay(decimal amount) =>
Console.WriteLine($"Paid {amount} by Credit Card");
}