Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
MashaM20
0 / 0 / 2
Регистрация: 31.01.2014
Сообщений: 43
#1

Как изменить параметры базового класса в потомке - C#

23.09.2014, 15:31. Просмотров 451. Ответов 5
Метки нет (Все метки)

Здравствуйте, как изменить параметры базового класса в классе потомок
Пример
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Class1
    {
        protected double i;
        public Class1() { }
        public void Вывод()
        {
            Console.WriteLine(i);
        }
    }
    class A : Class1
    {
        public A() : base() { }
        public void AA()
        {
            i = 3;
        }
    }
Не могу найти ошибку, параметр i после выполнения действий
class Program
C#
1
2
3
4
5
6
7
8
9
   {
        static void Main(string[] args)
        {
            Class1 x = new Class1();
            A y = new A();
            y.AA();
            x.Вывод();
        }
    }
не меняется, хотя должен же
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2014, 15:31
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как изменить параметры базового класса в потомке (C#):

Как убрать свойства базового класса в классе-потомке?
пишу свой контрол для winforms в моем контроле не будет столько свойств как в...

В приведенном коде base может изменить значения членов базового класса в самом базовом классе
using System; class a { public int x; public a() { x...

Как обратиться из конструктора базового абстрактного класса к свойству-массиву класса наследника
Добрый день. Подскажите как обратиться из конструктора базового абстрактного...

Как сделать явное приведения переменной типа класса-наследника к типу базового класса?
Читал, что для этого нужно явное приведение к типу, но на практике выдаёт...

Объект базового класса вернуть как get set
Дан базовый класс А, от него унаследован производный класс B, и в нем определен...

Как присвоить объекту экземпляр базового класса?
Есть классы: class A {} class B: A {} Предположим у меня уже есть...

5
nedel
588 / 588 / 345
Регистрация: 09.04.2014
Сообщений: 1,397
Завершенные тесты: 1
23.09.2014, 15:38 #2
Цитата Сообщение от MashaM20 Посмотреть сообщение
не меняется, хотя должен же
y.Вывод(); возвратит вам 3

Добавлено через 55 секунд
Вы изменяете значение в объекте у, а выводите значение из х
0
Learx
1045 / 852 / 194
Регистрация: 31.03.2010
Сообщений: 2,486
23.09.2014, 15:56 #3
Лучший ответ Сообщение было отмечено MashaM20 как решение

Решение

nedel, у вас два РАЗНЫХ объекта - х и у.
можно написать так:
C#
1
2
3
            A y = new A();
            y.AA(); //изменяем поле базового класса
            y.Вывод();
1
MashaM20
0 / 0 / 2
Регистрация: 31.01.2014
Сообщений: 43
23.09.2014, 16:07  [ТС] #4
а как тогда сделать что бы именно i из Class изменилась при изменении в классе потомок?
0
nedel
588 / 588 / 345
Регистрация: 09.04.2014
Сообщений: 1,397
Завершенные тесты: 1
23.09.2014, 16:25 #5
Цитата Сообщение от Learx Посмотреть сообщение
nedel, у вас два РАЗНЫХ объекта - х и у.
это не у меня, это у автора
0
Learx
1045 / 852 / 194
Регистрация: 31.03.2010
Сообщений: 2,486
23.09.2014, 16:50 #6
MashaM20, создавая A y = new A(); мы создаем объект, который выглядит как матрешка - серединка из Class1 и внешняя часть - это class A. И вы можете изменять поля внутренней части-базового класса в объекте класса-наследника, как свои собственные. вот смысл наследования.
вы же пытаетесь создать объект базового класса и изменить его при помощи совершенно другого объекта, а это уже бессмыслица.
1
23.09.2014, 16:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.09.2014, 16:50
Привет! Вот еще темы с решениями:

Как получить информацию о производных классах базового класса A
Доброе время суток! Подскажите как получить информацию о производных классах...

Как не инициировать поля базового класса в его производных классах?
У меня есть базовый класс, от него идут несколько производных классов, от...

Создание экземпляра класса-наследника для переменной с типом базового класса
Подскажите чайнику как создается экземпляр класса BC BaseClass BC = new...

Список дочернего класса привести к списку базового класса
Детский вопрос, но все же. есть классы: class Base { public...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru