Ответы пользователя по тегу Интерфейс пользователя
  • Пара глупых вопросов по полиморфизму и наследованию?

    @stringer
    1. не надо так писать
    Ваш вопрос не про полиморфизм... Полиморфное поведение может демонстрировать к примеру функция:
    void Foo(IList list) { var bar = list[1]; }
    если ожидается, что на вход может приходить не совсем new List(), или даже совсем не List, а некое хранилище, которое обеспечивает доступ к элементам по индексу, и ради этого это хранилище реализует IList.

    2 ничем не отличается
    Разница возникла бы в коде,
    Base A;
    switch(...)
    {
      case 0:
        A = Derived_1();
        break;
      case 1:
        A = Derived_2();
       break;
    }
    A.Foo();

    в точке, где происходит вызов Foo(), тут полиморфизм обеспечивает исполнение разных версий метода для _1() и _2() наследников. В таком коде если бы Вы написали объявление А как в вопросе, case 1: компилятор у Вас забраковал бы, не говоря уже о том, что _2() не исполнялось бы никогда.
    Ответ написан
    Комментировать