Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# для начинающих

Войти
Регистрация
Восстановить пароль
 
MashaM20
0 / 0 / 0
Регистрация: 31.01.2014
Сообщений: 43
#1

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

23.09.2014, 15:31. Просмотров 419. Ответов 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#):

Как убрать свойства базового класса в классе-потомке? - C#
пишу свой контрол для winforms в моем контроле не будет столько свойств как в контроле usercontrol (ведь что бы контрол добавить на форму...

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

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

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

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

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

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

Добавлено через 55 секунд
Вы изменяете значение в объекте у, а выводите значение из х
0
Learx
1039 / 846 / 86
Регистрация: 31.03.2010
Сообщений: 2,465
23.09.2014, 15:56 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
nedel, у вас два РАЗНЫХ объекта - х и у.
можно написать так:
C#
1
2
3
            A y = new A();
            y.AA(); //изменяем поле базового класса
            y.Вывод();
1
MashaM20
0 / 0 / 0
Регистрация: 31.01.2014
Сообщений: 43
23.09.2014, 16:07  [ТС] #4
а как тогда сделать что бы именно i из Class изменилась при изменении в классе потомок?
0
nedel
574 / 574 / 250
Регистрация: 09.04.2014
Сообщений: 1,356
Завершенные тесты: 1
23.09.2014, 16:25 #5
Цитата Сообщение от Learx Посмотреть сообщение
nedel, у вас два РАЗНЫХ объекта - х и у.
это не у меня, это у автора
0
Learx
1039 / 846 / 86
Регистрация: 31.03.2010
Сообщений: 2,465
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
Привет! Вот еще темы с ответами:

Создание экземпляра класса-наследника для переменной с типом базового класса - C#
Подскажите чайнику как создается экземпляр класса BC BaseClass BC = new DerivedClass(); Вопрос: BC - это экземпляр класса BaseClass...

Обращение к полю производного класса по ссылке базового класса - C#
Описывается базовый и производный класс. В методе Main создается объект производного класса и присваивается ссылке типа базового класса....

Список дочернего класса привести к списку базового класса - C#
Детский вопрос, но все же. есть классы: class Base { public string str = "base"; } class Dervie1 : Base ...

Вызов переопределенного метода класса наследника из базового класса - C#
Предположим есть два класа: public class A { /* ... некая дополнительная реализация.... */ ...


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

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

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