Задать вопрос
@Venesuella
BlackJack и ...

Что означает и что дает тип переменной?

Здравствуйте! Я правильно понимаю значение этой фразы
IUser user = new User();
создается объект класса User с типом IUser?
Что дает этот тип IUser - определяет доступные члены для объекта?
Я это спрашиваю к тому что, мне не понятно то что, Object является базовым классом для всех типов, но для интерфейса IUser Object не является базовым, а переменная user имеет тип IUser, так почему же у переменной user доступны методы из Object ?
  • Вопрос задан
  • 292 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
Vestail
@Vestail
Software Engineer
В C# класс(User, Object) определяет реализацию и тип одновременно. Интерфейс(IUser) определяет только тип. Один объект может иметь несколько типов. В свою очередь один тип может иметь несколько реализаций.
У созданого вами объекта есть как минимум три типа: User, IUser и Object.
Т.к. все классы в C# наследуются от Object(а значит все объекты имеют его тип), компилятор знает об этом заранее и поэтому дает возможность вызывать методы декларированные в Object из переменной любого типа.
Ответ написан
Комментировать
@John_Nash
coder
1)правильно
2) object - базовый для всех объектов (любого типа), исключений нет
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы