Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 22.06.2010
Сообщений: 7
1
.NET 2.x

Реализовать полиморфизм

19.08.2010, 17:56. Показов 1687. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вообщем проблема такая - необходимо реализовать полиморфизм

Требования к программе - это наличие ООП - инкапсуляция и наследование реализованы , а вот с полиморфизмом проблемы - ведь надо как-то использовать его в программе.

Базовый класс PrepodBase - с полями фамилия , пол (combobox - выбор М или Ж) , дата рождения.
Дочерний класс StudentBase - все поля базового + поля курс , группа

В программе я привязываю эти классы к bindingSource , а затем вывожу через dataGridView. Вообщем использую только поля для построения столбцов DataGridView , так что реализовать полиморфизм надо, чтобы он как-то взаимодействовал с полями данных.

Подскажите какие-нибудь идеи что и как добавить , чтобы реализовать полиморфизм

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class PrepodBase
    {
        private string familiya_chitatelya;
        public string Familiya_chitatelya
        {
            get { return familiya_chitatelya; }
            set { familiya_chitatelya = value; }
        }
        private string pol = "М";
        public string Pol
        {
            get { return pol; }
            set { pol = value; }
        }
        private DateTime data_rojdeniya;
        public DateTime Data
        {
            get { return data_rojdeniya; }
            set { data_rojdeniya = value; }
        }        
    }

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class StudentBase : PrepodBase
    {       
        private int kurs;
        public int Kurs
        {
            get { return kurs; }
            set { kurs = value; }
        }
        private string gruppa;
        public string Gruppa
        {
            get { return gruppa; }
            set { gruppa = value; }
        }
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.08.2010, 17:56
Ответы с готовыми решениями:

Полиморфизм
Доброго времени суток. Есть задание - показать принцип полиморфизма в программе. Я написал...

полиморфизм
using System; class A { public String Call() { return "A"; } } class B

Полиморфизм
Здравствуйте, я не могу понять как сделать полиморфизм 2-х методов в C#. Что это такое я понимаю, а...

Полиморфизм
Значит вот выдумал только что такой вот пример дабы обрести понимание полиморфизма. Скажите...

9
Автор FAQ
Автор FAQ
1802 / 614 / 37
Регистрация: 22.12.2009
Сообщений: 1,544
19.08.2010, 18:00 2
Используйте интерфейсы.. виртуальные функции или абстрактные обьекты.
0
0 / 0 / 0
Регистрация: 22.06.2010
Сообщений: 7
19.08.2010, 18:02  [ТС] 3
Rockedit, можно небольшой пример
0
Автор FAQ
Автор FAQ
1802 / 614 / 37
Регистрация: 22.12.2009
Сообщений: 1,544
19.08.2010, 18:08 4
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Media;
using System.Collections;
using System.IO;
 
namespace ConsoleApplication1
{
    public interface INew {
 
       void Abouts(string str);
    }
 
    public class Cars: INew 
    {
        public void Abouts(string str)
        {
            Console.WriteLine(" Car:" + str);
        }    
       }
    public class bmw :Cars, INew
    {
        public void Abouts(string str)
        {
            base.Abouts(str);
            Console.WriteLine("BMW"  + str);
        }
    }
 
    class Program
    {
      
        static void Main(string[] args)
        {
           
           }
        
    }
Сдесь, создан новый интерфейс, в котором определен прототип функции, теперь мы его реализуем в классах, т.е. имя одно, а действия разные - это как бы и есть полиморфизм) «Один интерфейс, множество реализаций».
0
0 / 0 / 0
Регистрация: 22.06.2010
Сообщений: 7
19.08.2010, 18:26  [ТС] 5
В моем случае такое не подходит вроде
Просто вывод сообщений мне не нужен , с самими полями как-то надо реализовать полиморфизм
Какие-нибудь идеи нужны - может какое-нибудь еще поле добавить или изменить чтоб получилось - мне пока в голову ничего не приходит
0
Автор FAQ
Автор FAQ
1802 / 614 / 37
Регистрация: 22.12.2009
Сообщений: 1,544
19.08.2010, 18:27 6
Цитата Сообщение от Venik333 Посмотреть сообщение
В моем случае такое не подходит вроде
Просто вывод сообщений мне не нужен , с самими полями как-то надо реализовать полиморфизм
Какие-нибудь идеи нужны - может какое-нибудь еще поле добавить или изменить чтоб получилось - мне пока в голову ничего не приходит
Я вам пример показал...вместо функций могут быть поля!
0
0 / 0 / 0
Регистрация: 22.06.2010
Сообщений: 7
19.08.2010, 18:32  [ТС] 7
Rockedit, на вашем примере то примере понятно как реализован полиморфизм , а как это применить на моих классах ?)
0
Mobile Developer
238 / 234 / 18
Регистрация: 10.05.2009
Сообщений: 917
19.08.2010, 18:35 8
к сожалению не все так просто, примером не отделаться.
Полиморфизм это (в языках программирования) — возможность объектов с одинаковой спецификацией иметь различную реализацию c wikipedia.org вот подорбнее
Для этого обычно используют интерфейсы. Можно сказать что это "класс" с определением функций. При имплиментировании интерфеса классом необходимор реализовать все опредленные в интерфейсе функции. таким образом если мы вогзьмем два класса, например квадрат и круг и и они будут имплементировать общий интерфейс(Читай про интерфейсы) типа Фигура , который содержит определения функций (например int square(Shape shape) int Perimeter(Shape shape) )
то таким образом из Main'а промграммы пользователь может вызвать функцию под именм Perimeter ili Square как на квадрат так и на круг и любую другую фигуру чей класс имплементировал интерфейс Shape, впринципе в этом и заключается полиморфизм.
1
Автор FAQ
Автор FAQ
1802 / 614 / 37
Регистрация: 22.12.2009
Сообщений: 1,544
19.08.2010, 18:37 9
К примеру так
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Media;
using System.Collections;
using System.IO;
 
namespace ConsoleApplication1
{
    public interface INew 
    {
       string Pol { get; set; }
 
    }
    public class PrepodBase: INew
    {
        private string familiya_chitatelya;
        public string Familiya_chitatelya
        {
            get { return familiya_chitatelya; }
            set { familiya_chitatelya = value; }
        }
        private string pol = "М";
        public string Pol
        {
            get { return pol; }
            set { pol = value; }
        }
        private DateTime data_rojdeniya;
        public DateTime Data
        {
            get { return data_rojdeniya; }
            set { data_rojdeniya = value; }
        }
    }
 
    public class StudentBase : PrepodBase,INew
    {
        private int kurs;
        public int Kurs
        {
            get { return kurs; }
            set { kurs = value; }
        }
        private string gruppa;
        public string Gruppa
        {
            get { return gruppa; }
            set { gruppa = value; }
        }
    }
 
 
    class Program
    {
      
        static void Main(string[] args)
        {
           
           }
        
    }
 
    }
1
0 / 0 / 0
Регистрация: 22.06.2010
Сообщений: 7
19.08.2010, 18:44  [ТС] 10
Спасибо за ответы
0
19.08.2010, 18:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.08.2010, 18:44
Помогаю со студенческими работами здесь

Полиморфизм
Создать базовый класс — фигура, и производные классы: круг, прямоугольник, трапеция. Определить...

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

Полиморфизм
Задание : Расширить иерархию классов из лабораторной работы №2 (см. ниже )с использованием...

Полиморфизм
Здравствуйте. Изучал ООП как в C#, так и в Python, но нигде не могу понять, что такое полиморфизм....


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru