Главная / Программирование /
Основы программирования на C# / Тест 18
Основы программирования на C# - тест 18
Упражнение 1:
Номер 1
Для классов клиентов и поставщиков справедливы утверждения:
Ответ:
 (1) у класса поставщика может быть много клиентов 
 (2) у класса клиента может быть много поставщиков 
 (3) поставщик может быть собственным поставщиком 
 (4) клиент может быть собственным клиентом 
 (5) отношение «клиент-поставщик» – задает отношение «имеет» 
 (6) отношение «клиент-поставщик» – задает отношение «является» 
Номер 2
Для классов родителей и потомков справедливо следующее утверждение:
Ответ:
 (1) у родительского класса может быть несколько непосредственных потомков 
 (2) у класса потомка может быть несколько непосредственных родительских классов 
 (3) класс родитель может быть сам себе родитель 
 (4) класс потомок может быть собственным потомком 
Номер 3
Для понятия «полиморфизм» справедливы следующие утверждения
Ответ:
 (1) полиморфизм определяется для семейства классов, связанных отношением наследования 
 (2) полиморфизм определяется для семейства классов, связанных отношением вложенности 
 (3) полиморфизм означает, что в классе заданы перегруженные методы 
 (4) реализация полиморфизма построена на динамическом связывании 
 (5) реализация полиморфизма предполагает статический контроль типов 
Упражнение 2:
Номер 1
Отметьте истинное высказывание:
Ответ:
 (1) класс называется абстрактным, если он не вводит собственных полей данных 
 (2) если метод класса А объявлен с модификатором virtual, то для него применяется статическое связывание 
 (3) у класса может быть несколько непосредственных родительских классов 
 (4) у класса может быть только один непосредственный потомок 
 (5) в проектах на C# контроль типов выполняется на этапе компиляции 
Номер 2
Отметьте истинные высказывания:
Ответ:
 (1) класс с модификатором sealed не может иметь потомков 
 (2) класс с модификатором abstract не может иметь потомков с таким же модификатором 
 (3) если у метода класса не задан специальный модификатор, то для него по умолчанию применяется динамическое связывание 
 (4) класс потомок не наследует конструкторы своего родителя 
Номер 3
Отметьте истинные высказывания:
Ответ:
 (1) вызов конструктора приводит к вызову конструкторов всех предков класса 
 (2) клиенту доступны все методы поставщика 
 (3) наследнику доступны все методы предков 
 (4) абстрактный класс может иметь полностью реализованный метод 
Упражнение 3:
Номер 1
В родительском классе описан метод public virtual void M(int x) {}.
Какое объявление в классе потомке вызовет ошибку на этапе компиляции, не допускающую выполнения проекта?
Ответ:
 (1) override void M(int x){} 
 (2) public override void M(int item){} 
 (3) public new void M(int x){} 
Номер 2
В родительском классе описан метод public virtual void M(int x) {}. Какое объявление в классе потомке вызовет ошибку на этапе компиляции?
Ответ:
 (1) public override void M(int item){} 
 (2) public new void M(int x){} 
 (3) public override virtual void M(int x){} 
 (4) public virtual void M(int x, int y){} 
Номер 3
В родительском классе описан метод public void M(int x) {}. Какие объявления в классе потомке вызовут ошибки или предупреждения на этапе компиляции?
Ответ:
 (1) public override void M(int x) {} 
 (2) public new void M(int x) {} 
 (3) public new void M(int x, int y){} 
 (4) public void M(int x){} 
 (5) private new void M(int x){} 
Упражнение 4:
Номер 1
Если метод родительского класса объявлен с атрибутом virtual, то потомок класса:
Ответ:
 (1) обязан переопределить реализацию метода 
 (2) обязан переопределить сигнатуру метода 
 (3) может наследовать реализацию класса 
Номер 2
Класс А является клиентом класса B
Ответ:
 (1) если методы и или поля класса A вызываются в методах класса B 
 (2) если методы и или поля класса B вызываются в методах класса A 
 (3) если у класса A есть поле, являющееся объектом класса B 
Упражнение 5:
Номер 2
Правда ли, что:
Ответ:
 (1) поле класса может быть объектом описываемого класса 
 (2) при вызове конструктора класса ему может быть передана ссылка на создаваемый конструктором объект 
 (3) потомкам доступны все поля и методы родительского класса