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

Полиморфизм: Почему в объекте нет свойства дочернего класса

19.10.2012, 00:45. Показов 993. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
class A
    {
        public int a = 1;
        public int c = 5;
        virtual public void Fun()
        {
            a = a + c;
            Console.Write(a);
        }
    }
    class B : A
    {
        public int d = 3;
        public override void Fun()
        {
            a = a + c + d;
            Console.Write(a);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            A r = new B();
            //r.a;
            //r.c;
            //r.d;//нет такого свойства
            r.Fun();
        }
    }
Хотелось бы услышать ваше мнение: "Почему в объекте нет свойства дочернего класса?"
Да я знаю что тут используется полиморфизм, но почему так происходит??
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.10.2012, 00:45
Ответы с готовыми решениями:

Как свойства класса Person указывать в другом объекте
#region List Filtering static void Main(string args) { ListFiltering(); Console.ReadLine(); } ...

MVVM достучаться до свойства родительского класса из ViewModel дочернего
Добрый день! Пробую свои силы в MVVM проектировании. Задача стоит следующим образом: есть главное окно (MainWindow), которое содержит...

Почему не могу получить доступ к protected полям из дочернего класса?
Пытаюсь получить доступ к ships из дочернего класса Referee, но не получается. В чем ошибка? class Player { protected: ...

2
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
19.10.2012, 00:51
Цитата Сообщение от Pushkin Посмотреть сообщение
"Почему в объекте нет свойства дочернего класса?"
вот этим
Цитата Сообщение от Pushkin Посмотреть сообщение
A r = new B();
ты создаешь объект класса A( хотя память выделяется как для объекта класса B)
а он ничего не знает о своих потомках
но стоит тебе явно привести(интересно в шарпе такое разрешается?) как все меняется
1
Gagrskii
10.11.2012, 21:55
Попробуй так

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
class A
    {
        public int a = 1;
        public int c = 5;
        virtual public void Fun()
        {
            a = a + c;
            Console.Write(a);
        }
    }
    class B : A
    {
        public int d = 3;
        public B(int i)
        {
           this.d=i;
        }
        public override void Fun()
        {
            a = a + c + d;
            Console.Write(a);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            A r = new B(5);
            //r.a;
            //r.c;
            //r.d;//нет такого свойства
            Console.Write(((B)r).d);
            r.Fun();
        }
    }
Свойство r.d не появится, потому что у тебя в классе А нет его. Класс А является базовым, но можно
привести его к B, изменить значение свойства d и привести назад к А.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.11.2012, 21:55
Помогаю со студенческими работами здесь

Почему вызывается перегрузка виртуальной функции из приватной секции дочернего класса?
Как вообще такое происходит class A { public: virtual void foo(){std::cout<<"A\n"; } }; class B:public A { private: ...

Почему если при вызове метода Foo от типа B, в объекте класса FooImp вызывается метод от А?
Поясните пожалуйста, почему если при вызове метода Foo от типа B, в объекте класса FooImp вызывается метод от А ? public class...

Почему в списке инициализации конструктора дочернего класса нельзя вызывать конструктор родительского через его пространство имён?
Есть класс D и от него порождён класс Wd Тут вот например всё работает корректно (использую обращение ч/з пространство имён класса...

Перегрузка оператора >> для дочернего класса от базового виртуального класса
Доброго вам времени суток! Программирую на С++ не давно, в связи с отсутствием должного времени на поиск ответа в глубинах учебников,...

Может ли метод родительского класса обратиться к полю дочернего класса
Может ли метод родительского класса обратиться к полю дочернего класса?


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru