Собеседовался на Junior первый раз - C#

Узнай цену своей работы

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

Всем привет. Задали вопрос (человек из плюсов): Существует класс

Человек

, от него наследуются (интервьюер не правильно стрелки нарисовал, поправил) классы

Спортсмен

,

Водитель

,

Женщина

. Как мне понять что их родитель класс

Человек

, и при добавлении новых экземпляров уметь использовать их, понимая что они наследуются от него. Я говорю что через рефлексию, которая базируется на типе Type. В голове рисую вроде instance.GetType().BaseType и т.д. А работать с ними через реализацию интерфейсов (контракты). Про возможность апкаста ничего не говорил (приведение к базовому типу, интерфейсу), что бы не накидали вопросов. Мне говорят: "нет, зачем это использовать. Не правильно, надо другим способом." Думал... не знаю, не помню другого. Потом на листке бумаги он написал слово visitor (что является паттерном). И говорит, "я это хотел услышать". Можете разъяснить что имелось ввиду.

Думаю что можно спросить у человека на Junior, при том что знаю нюанс - структуры могут быть на куче (хотя многие пишут не правильно даже в мануалах). При создании экземпляра класса на куче создается экземпляр и объект (разные вещи). Невозможно перехватить переполнение стека потока. etc.

Решение задачи: «Собеседовался на Junior первый раз»

textual
Листинг программы
using System;
using System.Collections.Generic;
 
namespace ConsoleApplication2
{
    public class Man
    {
        public virtual void Identification()
        {
            Console.WriteLine("This is Man");
        }
    }
 
    public class Athlete : Man
    {
        public override void Identification()
        {
            Console.WriteLine("This is Athlete");
        }
    }
    public class Driver : Man
    {
        public override void Identification()
        {
            Console.WriteLine("This is Driver");
        }
    }
    public class Female : Man
    {
        public override void Identification()
        {
            Console.WriteLine("This is Female");
        }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            var people = new List<Man> {new Man(), new Athlete(), new Driver(), new Female()};
            people.ForEach(x=>x.Identification());
            Console.ReadLine();
        }
    }
}

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


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

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

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