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

Наследование методов. Не работают два аналогичных метода

07.10.2015, 14:21. Показов 637. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Пытаюсь реализовать наследование методов, и вот вроде и решил свою задачу, но выяснилось, что второй метод (shiftY), абсолютно аналогичный первому (shiftX). В чем может быть загвоздка?
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
using System;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {   //создаем точки            
            Point3D p1 = new Point3D(4, 3, 1);
            Point3D p2 = new Point3D(5, 7, 9);
           
            Console.WriteLine("Points initialized. First point (4, 3, 1), second point (5, 7, 9), third point (1,2), fourth point (2,5)...");
            
            //////
            Console.WriteLine("Shift first point (start position (4,3,1)");
            Console.WriteLine("Input shift for X");
            float sX = float.Parse(Console.ReadLine());
            p1.ShiftX(sX);
            p1.sendXPosition();//Все хорошо
 
            float sY = float.Parse(Console.ReadLine());
            p1.ShiftY(sY);
            p1.sendYPosition();//Не работает
 
            float sZ = float.Parse(Console.ReadLine());
            p1.ShiftZ(sZ);
            p1.sendZPosition();//Все нормально
 
            
            Console.ReadKey();
        }
    }
    class Point2D
    {
        float x, y;
        public Point2D(float x, float y)
        {
            this.x = x;
            this.y = y;
        }
       
        public virtual void ShiftX(float shiftx) //сдвигает точку по Х на величину аргумента    
        {
            Console.WriteLine("Shift point by X on {0}", shiftx);
            this.x += shiftx;
        }
        public virtual void ShiftY(float shifty)
        {
            Console.WriteLine("Shift point by Y on {0}", shifty);
            this.x += shifty;
        }
        
        public virtual void sendXPosition()
        {
            Console.WriteLine("Position by X= " + this.x);
        }
        public virtual void sendYPosition()
        {
            Console.WriteLine("Position by X= " + this.y);
        }
          
    }
    class Point3D : Point2D
    {
        float x, y, z;
        public Point3D(float x, float y, float z) : base(x, y)
        {
            this.x = x;
            this.y = y;
            this.z = z;
        }
      
        public override void ShiftX(float shiftx2)
        {
            base.ShiftX(shiftx2);
        }
        public override void ShiftY(float shifty2)
        {
            base.ShiftY(shifty2);
        }
        public void ShiftZ(float shiftz)
        {
            this.z += shiftz;
        }
        public override void sendXPosition()
        {
            base.sendXPosition();
        }
        public override void sendYPosition()
        {
            base.sendYPosition();
        }
        public void sendZPosition()
        {
            Console.WriteLine("Position by Z= " + this.z);
        }
    }
}
Скриншот консоли:
Миниатюры
Наследование методов. Не работают два аналогичных метода  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.10.2015, 14:21
Ответы с готовыми решениями:

Не работают два HttpGet метода
Я хочу использовать метод GetStop И GetStart при обращении к серверу, но сервер упорно пишет мне что он не знает ни про stop ни старт....

Разработать класс, набор методов (конструктор и минимум два метода) для программной модели задан
Разработать класс, набор методов (конструктор и минимум два метода) для программной модели заданного объекта. Описание объекта и его...

Разработать класс, набор методов (конструктор и минимум два метода) для программной модели заданного объекта
Разработать класс, набор методов (конструктор и минимум два метода) для программной модели заданного объекта.Объект «прямоугольный...

2
 Аватар для Пытливый Ум
22 / 22 / 16
Регистрация: 04.06.2015
Сообщений: 126
07.10.2015, 14:35
C#
1
2
3
4
5
public virtual void ShiftY(float shifty)
        {
            Console.WriteLine("Shift point by Y on {0}", shifty);
            this.x += shifty;
        }
может дело в этом?

если я уловил логику, там должно быть
C#
1
            this.y += shifty;
1
1 / 1 / 3
Регистрация: 27.01.2015
Сообщений: 116
07.10.2015, 14:45  [ТС]
Пытливый Ум,
Да, спасибо! Две пары глаз быстрее одной заметили такую ошибку.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.10.2015, 14:45
Помогаю со студенческими работами здесь

Наследование методов
Может мне стоит книжку почитать или получше подумать над структурой, но вопрос вот: Есть у нас древо классов: base > s2 > s3 >...

Наследование методов
Можно ли как то классу наследнику запретить наследовать какой то из методов или полей супер класса?

Наследование методов C++
Подскажите, если у меня есть класс, в нём описан метод добавления элемента add_element(int number); который в свою очередь основан на...

Наследование и перегрузка методов
Здравствуйте. Пытаюсь выполнить упр. 8 из главы 11 книги Р.Лафоре "ООП в С++", соорудил такое древо классов (картинка в конце поста). Если...

Наследование методов класса
Я пишу программу на наследование классов.Базовый - Person , с объектами имя , возраст , вес. Наследник - Student , с собственным объектом...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru