Главная /
C#: ООП и классы /
Проанализируйте приведенный код. interface Интерфейс1 { string Метод(); } interface Интерфейс2 { string Свойство { get;} } class Класс1 : Интерфейс1 { public string Метод() { return "Класс1: есть Интерфейс1 "; } } class Класс2 : Класс1, Интерфейс2 { publi
Проанализируйте приведенный код.
interface Интерфейс1 { string Метод(); }
interface Интерфейс2 { string Свойство { get;} }
class Класс1 : Интерфейс1
{ public string Метод() { return "Класс1: есть Интерфейс1 "; }
}
class Класс2 : Класс1, Интерфейс2
{ public string Метод() { return "Класс2: есть Интерфейс1 "; }
public string Свойство { get { return "Класс2: есть Интерфейс2 "; } }
}
class Test
{ static string GetValue(object ob)
{ string str = "Найден интерфейс ";
if (ob is Интерфейс1) str = ((Интерфейс1)ob).Метод();
if (ob is Интерфейс2) { str += ((Интерфейс2)ob).Свойство; }
return str;
}
public static void Main()
{ Интерфейс1 объект1 = new Класс2();
System.Console.WriteLine(GetValue(объект1));
} }
Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:
вопрос
Правильный ответ:
Класс1: есть Интерфейс1 Класс2: есть Интерфейс2
Класс2: есть Интерфейс1. Класс2: есть Интерфейс2.
Класс2: есть Интерфейс2.
Найден интерфейс
программа не выполняется, так как обнаружена синтаксическая ошибка, связанная с тем, что посредством интерфейсной ссылки
объект1
типа Интерфейс1
нельзя вызвать Свойство
, определенное в Интерфейс2
Сложность вопроса
49
Сложность курса: C#: ООП и классы
79
Оценить вопрос
Комментарии:
Аноним
Кто ищет вот эти ответы с интуитом? Это же элементарно
22 ноя 2017
Другие ответы на вопросы из темы программирование интуит.
- # Доступность метода из других классов может быть указана с помощью модификатора:
- # Исходный модуль содержит код: class Сотрудник { private int id; private float зарплата; public Сотрудник(int i, float z) { id = i; зарплата = z; } public float Зарплата(int номер) { return номер < id ? зарплата : -1; } public void Зарплата(int номер, ref float зарпл) { if (номер < id) { float зрпл = зарплата; зарплата = зарпл; зарпл = зрпл; } } } class Program { static void Main() { Сотрудник Иванов = new Сотрудник(12, 40000.0f); float z = 45000.0f; Иванов.Зарплата(10, ref z); System.Console.Write("Зарплата Иванова = " + Иванов.Зарплата(12)); } } Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:
- # Исходный модуль содержит классы ЧЕЛОВЕК,СОТРУДНИК и Program: class ЧЕЛОВЕК { string фамилия; public ЧЕЛОВЕК(string фамилия) {this.фамилия = фамилия;} public string ФАМ() { return фамилия; } } class СОТРУДНИК:ЧЕЛОВЕК { string должность; public СОТРУДНИК(string фамилия, string должность):base(фамилия) { this.должность = должность; } public string ДОЛ { get {return должность;} } } В классе Program определен метод Main, в теле которого находится код: ЧЕЛОВЕК P = new СОТРУДНИК("Петров","Кассир"); System.Console.Write("{0} {1}", ______________ ); Требуется вывести фамилию и должность сотрудника. Среди перечисленных ниже кодов укажите код, подстановка которого вместо знаков подчеркивания позволяет получить программу, решающую поставленную задачу:
- # Из приведенных ниже высказываний укажите все истинные высказывания:
- # Исходный модуль содержит код: interface IФормула { int F(int x); } class A: IФормула{ public int F(int x) { return x*x; } } class B: IФормула{ public int F(int x) { return x * x * x; } } class Program { static int Out(IФормула f, int x ) {return f.F(x); } static void Main() { A a = new A(); B b = new B(); System.Console.WriteLine( _________ ); } } Среди перечисленных ниже кодов укажите код, подстановка которого вместо знаков подчеркивания позволяет получить корректную программу для вычисления 3*3 + 2*2*2: