По наследованию - 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
Листинг программы
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();
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы