Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 1
Регистрация: 11.02.2015
Сообщений: 76

Виртуальные методы и их переопределение - проверка корректности реализации

09.11.2015, 22:03. Показов 1313. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пожалуйста , кто шарит , скажите , я правильно сделал или нет ?
Задание
1. В базовый класс добавить виртуальные методы;
2. В классах потомках переопределить виртуальные методы
3. Продемонстрировать работу виртуальных методов.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication19
{
    class Person
    {
        public string Name;
        public int Age;
 
        public Person(string name, int age)
        {
            Name = name;
            Age = age;
        }
        public virtual void ShowInfo()  //объявление виртуального метода
        {
            Console.WriteLine("Имя: " + Name + "\n" + "Возраст: " + Age );
        }
    }
    class Student : Person
    {
        public string HighSchoolName;
        public bool Status;
        // Передача параметров в базовый конструктор
        public Student(string name, int age, string hsName,bool status)
            : base(name, age)
        {
            HighSchoolName = hsName;
            Status = status;
        }
        public override void ShowInfo() // переопределение метода
        {
            // Обращение к методу базового класса, используя ключевое слово base
            Console.WriteLine("|||Исполнитель заказа:|||");
            base.ShowInfo();
            string temp;
            Console.Write("Название ВУЗа: " + HighSchoolName + "\n"  + "Бюджет/Контракт: " + (temp = Status == true ? "1\n" : "2\n"));
        }
    }
    class Customer : Person
    {
        public int Price;
 
        public Customer(string name, int age, int price)
            : base(name, age)
        {
            Price = price;
        }
        public override void ShowInfo() // переопределение метода
        {
            // Обращение к методу базового класса, используя ключевое слово base
            Console.WriteLine("\n|||Заказчик:|||");
            base.ShowInfo();
            Console.WriteLine("Цена заказа(грн): " + Price);
        }
    }
 
    class mainlaba1
    {
        public static void Main()
        {
            List<Person> persons = new List<Person>();
            persons.Add(new Student("Валентин",17,"КрНУ",true));
            persons.Add(new Customer("Евгений",20,230));
            foreach (Person p in persons)
                p.ShowInfo();
            Console.ReadKey();
        }
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.11.2015, 22:03
Ответы с готовыми решениями:

Виртуальные методы
Преобразуйте методы базового класса в виртуальные и переопределите их в производных классах. Продемонстрируйте...

Виртуальные методы
Дан родительский класс Animal (поле кличка). И два наследованных от него класса-потомка: Cat (поле рост - h), Dog(поле рост - h)....

Виртуальные методы
Всем доброго времени суток! Вопрос следующий. Как я могу функцией делать подмену виртуального метода у класса?

1
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
09.11.2015, 23:41
Лучший ответ Сообщение было отмечено boti9 как решение

Решение

boti9, вроде бы все верно, только вот это глаза режет:
C#
1
(temp = Status == true ? "1\n" : "2\n")
Излишняя запись, достаточно:
C#
1
Status ? "1\n" : "2\n"
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.11.2015, 23:41
Помогаю со студенческими работами здесь

виртуальные методы
#include&lt;iostream&gt; #include&lt;stdlib.h&gt; using namespace std; class MArray { protected: static const int MAX=512; ...

Виртуальные методы
Здраствуйте , вот писал виртуальный метод доступа но почему то не получаеться , подскажите почему ??? заранее спасибо ...

Виртуальные методы
...в голове не укладываются. Помогите кто может :confusion: У меня про них сложилось впечатление, что они только усложняют жизнь. Если...

Виртуальные методы
народ вот пример с виртуальными методами, и вывод этой программы class Ancestor { public: virtual void function1 () { cout...

виртуальные методы
как вызвать виртуальный метод базового класса из наследуемого класса? struct A { virtual void vf() { printf(&quot;A&quot;); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru