Different with using abstract class
Abstract Method in Inheritance
Example
using System;
public abstract class Payment
{
public abstract void Pay(decimal amount);
}
public class CreditCardPayment : Payment
{
public override void Pay(decimal amount)
{
Console.WriteLine($"Paying {amount:C} using Credit Card.");
}
}
public class PayPalPayment : Payment
{
public override void Pay(decimal amount)
{
Console.WriteLine($"Paying {amount:C} using PayPal.");
}
}
public class CryptoPayment : Payment
{
public override void Pay(decimal amount)
{
Console.WriteLine($"Paying {amount:C} using Cryptocurrency.");
}
}
class Program
{
static void Main()
{
Payment payment;
// Pay using Credit Card
payment = new CreditCardPayment();
payment.Pay(120.00m);
// Pay using PayPal
payment = new PayPalPayment();
payment.Pay(75.50m);
// Pay using Cryptocurrency
payment = new CryptoPayment();
payment.Pay(250.00m);
}
}Strategy Pattern
Example
Differences
Last updated