По наследованию - C#

Формулировка задачи:

Решил заняться паттернами проектирования и возник вопрос. Допустим есть абстрактный класс
public abstract class First
{
      public void Word()
      {
             Console.WriteLine("Что, не важно что.");
      }
}
И есть несколько наследников:
public class Second: First
И у меня возник вопрос, почему создают ссылку типа базового класса , а не наследника, т.е
static void Main()
{
      First someclass = new Second();
      //вместо Second someclass = new Second();
}
Возникает вопрос почему так? Что бы было легче приведение классов?


textual

Код к задаче: «По наследованию - C#»

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
 
    public class First
    {
        public virtual void Work()
        { Console.WriteLine("First Class"); }
    }
 
    public class Second:First 
    {
        public override void Work()
        { Console.WriteLine("Second Class"); }
    }
 
    public class Third : Second
    {
        public override void Work()
        { Console.WriteLine("Third Class"); }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            List<First> listObjects = new List<First>();
            listObjects.Add(new First());
            listObjects.Add(new Second());
            listObjects.Add(new Third());
            foreach (First element in listObjects)
                element.Work();
            Console.ReadLine();
        }
    }
}
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.


СДЕЛАЙТЕ РЕПОСТ

5   голосов, оценка 3.800 из 5

Источник