ExampleClasses

The classes used in these samples are:

using System;
namespace Simpsons
{
public abstract class Pet
{
public abstract string? Name { get; set; }
public override string? ToString()
{
return Name;
}
}
public class Cat : Pet
{
public override string? Name { get; set; }
}
public class Dog : Pet
{
public override string? Name { get; set; }
}
public class Person
{
public Person()
{
}
public Person(string name)
{
Name = name ?? throw new ArgumentNullException(nameof(name));
}
public string? Name { get; set; }
public int Salary { get; set; }
public override string? ToString()
{
return Name;
}
}
}

snippet source | anchor