Реализация Liskov подстановки

Одним из принципов в SOLID является принцип перестановки Лискоу, или Liskov substitution.

Кто-нибудь может мне показать как реализовать этот принцип на практике? А то на теории понимаю, что в метод могут передаваться как классы родители, так и все их наследники, но как реализовать это всё - без понятия...

Вот 2 класса:

    class Parent
    {
        public string Field1 { get; set; }
        public int Field2 { get; set; }
        public char Field3 { get; set; }
        public double Field4 { get; set; }
    public Parent()
    {
        Field1 = "Parent";
        Field2 = 50;
        Field3 = 'P';
        Field4 = 50.0;
    }
}
class Child : Parent
{
    public Child()
    {
        Field1 = "Child";
        Field2 = 20;
        Field3 = 'C';
        Field4 = 20.0;
    }
}</pre>

А вот реализация метода и его вызов в Мейне:

    public class Program
    {
        static void Method(Parent par)
        {
            Console.WriteLine($"This is a {par.GetType().Name.ToString()}");
        }
    public static void Main()
    {
        Child ch = new Child();
        Parent par = new Parent();

        Method(ch);
        Method(par);

        Console.ReadKey();
    }
}</pre>