static void Main(string[] args) { Base test = new Base(); test.First(); Console.WriteLine("-=-=-"); Derived test2 = new Derived(); test2.First(); Console.WriteLine("-=-=-"); Base derivedAsBase = new Derived(); derivedAsBase.BBB(); derivedAsBase.First(); // Derived.First(), выведет "First from Derived" //override - тут переопределили метод базового класса derivedAsBase.Second(); // Base.Second(), выведет "Second from Base" //new - тут создали новый экземпляр базового класса? Console.ReadLine(); }