educative.io
C# for Programmers: A Practical Guide (Educative)
OOP in C# - Exercise 2: Displaying Message Using Virtual Functions