Exemple #1
0
 public virtual void iAmPrinting(Ispitanie test)
 {
     if (test is Test)
     {
         Console.WriteLine($"Тип: Test. Вызываю ToString()...\n" + test.ToString());
     }
     if (test is Examination)
     {
         Console.WriteLine($"Тип: Examination. Вызываю ToString()...\n" + test.ToString());
     }
     if (test is FinalExamination)
     {
         Console.WriteLine($"Тип: FinalExamination. Вызываю ToString()...\n" + test.ToString());
     }
 }
Exemple #2
0
        static void Main()
        {
            Console.WriteLine("Вызываем метод Test() с разной реализацией для класса и интерфейса...");
            Examination ex1 = new Examination("Физика", "8:00", "Что такое дилектрик?", "Это изолятор, пропускающий ток", "Что делает электродвигатель на 5 В при подключении 55 В??", "Сгорает к чертям");

            ex1.Method();
            (ex1 as ICheck).Method(); // или же ((ICheck)examination).Test();

            Console.WriteLine("Создаем объекты различных классов и выводим инфу через ссылки на абстрактный класс / интерфейс.");
            Examination      ex2  = new Examination("ОАиП", "8:00", "Самый страшный Звэр на свете?", "Бедодел.", "Кто такой Бедодел?", "Рейд-босс первашей.");
            FinalExamination fex1 = new FinalExamination("ОС", "8:30", "Что такое ОС?", "Набор прог", "Что такое ОЗУ?", "Оперативное запоминающее устройство", "Что такое ЦП?", "Центральный процессор", "Зачем он нужен?", "Он - \"мозг\" компа");

            Console.WriteLine("Первый экзамен: " + ex2.Name);
            Console.WriteLine("Время второго: " + fex1.Time);

            Console.WriteLine($"\n Вызываем ToString() для объектов массива...");
            // сделаем один тест, а то попусту класс создан
            string[] questions = { "Что такое парсек?", "Где находится Черная дыра?", "Газовые гиганты Солнечной системы?", "Созвездие в виде буквы W?", "Звезда, переливающаяся зеленым, желтым и синим цветами?" };
            string[] answers   = { "Единица измерения расстояния, равная расстоянию до объекта. :D ", "В центре галактики", "Юпитер, Сатурн, Уран, Нептун", "Кассиопея", "Капелла" };
            Test     test      = new Test("Астрономия", "10:05", questions, answers);

            Ispitanie[] mas = new Ispitanie[4];
            // заносим в массив ссылки на объекты производных классов
            mas[0] = ex1;
            mas[1] = ex2;
            mas[2] = fex1;
            mas[3] = test;

            // создаем "принтер"
            Printer p = new Printer();

            for (int i = 0; i < mas.Length; i++)
            {
                p.iAmPrinting(mas[i]);
            }

            Console.WriteLine("\nDone.");

            Console.ReadKey();
        }