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

Построение иерархии классов с использованием наследования

10.11.2015, 00:54. Показов 3087. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. У меня вот такая проблема. Недавно взял подкурс по С#. ПРоблема в том, что я пропустил одно занятие по Наследованию и пытаюсь наверстать, но что - то пока не сильно дается. Помогите пожалуйста.

Код писал сам по разным файлам из гугла, старался как мог, но уже упарился совсем не доходит до меня.
Вот задание у меня есть Class Animal у него есть наследники классы FarmAnimals(Корова и коза) и Pets(Собака и кошка). у всех у них есть общая функция это Кушать() и личный параметр как уровень Голода. Корова должна мычать и давать молоко примерно как и коза, а кошка должна мышей ловить а собака прыгать(Апорт). Заранее огромное спасибо за помощь!

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
98
99
100
101
102
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Prac3Inheritance
{
    class Program
    {
        
        static void Main(string[] args) {
 
        }
            class Animal
        {
            public int HungerLevel = 50;
            public int Food;
            public abstract void Eat();
        }
            class FarmAnimal : Animal
            {
                public int Milk;
                public int Noise;
                public void GetMilk();
                public void SayMuuuu();
                public void SayBheee();
                    
            }
            class Cow : FarmAnimal
            {
                public void GetMilk()
                {
                    Milk++;
                    Console.WriteLine("I am getting Milk");
           
                }
                public void SayMuuu()
                {
                    Noise++;
                    Console.WriteLine("I am Cow Muuuu...!");
                }
 
               
            }
            class Goat : FarmAnimal
            {
                public void GetMilk()
                {
                    Milk++;
                    Console.WriteLine("I am getting Milk!");
 
                }
                public void SayBheee()
                {
                    Noise++;
                    Console.WriteLine("I am Goat Bheee...!");
                }
            }
            class Pet : Animal
            {
                public void Eat();
                public void Attack();
 
            }
            class Dog : Pet
            {
                public int energy;
                public void Aport()
                {
                    energy--;
                    Console.WriteLine("Jumping...");
                }
                public void Eat()
                {
                    energy++;
                    Console.WriteLine("I am eating...!");
                }
                public void Attack()
                {
                    energy--;
                    Console.WriteLine("Cats are my enemies...!");
                }
            }
            class Cat : Pet
            {
                public int mouse;
                public int energy;
                public void CatchMouse()
                {
                    mouse--;
                    energy--;
                    Console.WriteLine("I am cat. I am catching mouse!");
                }
                public void Attack()
                {
                    energy--;
                    Console.WriteLine("Dogs are my enemies!");
                }
            }
        }
    }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.11.2015, 00:54
Ответы с готовыми решениями:

Продемонстрировать принцип иерархии, наследования классов и инкапсуляции данных
Продемонстрировать принцип иерархии, наследования классов и инкапсуляции данных.

Построение иерархии классов
а есть ли так сказать, блок схема, между тем, как работает программа? Точнее от класса к методу и тд, как все это выглядит? на примере...

Построение иерархии классов
1) Разработать методы (не менее 3-х) и свойства (не менее 3-х) для каждого из определяемых классов. 2) Один из методов в классе родителе...

1
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
10.11.2015, 01:56
Цитата Сообщение от DevMonroe Посмотреть сообщение
C#
1
2
3
4
5
6
class Animal
{
    public int HungerLevel = 50;
    public int Food;
    public abstract void Eat();
}
Чтобы в классе можно было объявить абстрактный метод, сам класс тоже должен быть объявлен абстрактным.
C#
1
2
3
               public void GetMilk();
                public void SayMuuuu();
                public void SayBheee();
SayMuuuu и SayBheee должны быть объединены в один абстрактный, SaySomething или что-то в этом духе, а в наследниках должны переопределяться с использованием ключевого слова override. Классы FarmAnimal и Pet так же должны быть абстрактными.
В общем вот упрощенный пример:
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
using System;
using System.Collections.Generic;
 
namespace ConsoleApplication36
{
    class Program
    {
        static void Main(string[] args)
        {
            List<Animal> animals = new List<Animal>();
            List<HerbivorousAnimal> hanilmals = new List<HerbivorousAnimal>() { new Cow(), new Goat() };
            List<CarnivoraAnimal> canilmals = new List<CarnivoraAnimal>() { new Dog(), new Cat() };
            animals.AddRange(hanilmals);
            animals.AddRange(canilmals);
            foreach(Animal a in animals) { a.Eat(); }
            foreach (HerbivorousAnimal h in hanilmals) { h.SaySomthing(); }
            foreach (CarnivoraAnimal c in canilmals) { c.Attack(); }
            Console.Read();
        }
    }
 
    abstract class Animal
    {
        public abstract void Eat();
    }
 
 
    abstract class HerbivorousAnimal : Animal
    {
        public override void Eat()
        {
            Console.WriteLine("Eat some grass");
        }
        public abstract void SaySomthing();
    }
    class Cow : HerbivorousAnimal
    {
        public override void SaySomthing()
        {
            Console.WriteLine("MUUUUUUUUUUUUUUUUUUUUUUUUU!");
        }
    }
 
    class Goat : HerbivorousAnimal
    {
        public override void SaySomthing()
        {
            Console.WriteLine("MEEEEEEEEEEEEEEEEEEEEEEEE!");
        }
    }
 
 
    abstract class CarnivoraAnimal : Animal
    {
        public override void Eat()
        {
            Console.WriteLine("Eat some meat");
        }
        public virtual void Attack() { Console.WriteLine("Attack an enemy"); }
    }
 
    class Dog : CarnivoraAnimal
    {
        public override void Attack() { Console.WriteLine("Attack a cat"); }
    }
   
    class Cat : CarnivoraAnimal
    {
        public override void Attack() { Console.WriteLine("Attack a mouse"); }
    }
}
Нужные методы,поля и конструкторы добавите по вкусу.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.11.2015, 01:56
Помогаю со студенческими работами здесь

Разработать программу с использованием наследования классов
Разработать программу с использованием наследования классов, реализующую классы: • зверь; • кошка; • медведь. Используя виртуальные...

Построение иерархии из следующих классов: бумага, газета, книга, журнал, учебник
Здравствуйте, можете помочь с построением иерархии из следующих классов: бумага, газета, книга, журнал, учебник, плакат, картина,...

Создание иерархии классов
Создать следующую иерархию классов: Класс CL1 содержит в себе: -Элементы-данные доступные в CL2, но не доступные в CL3 -Класс...

Сериализация иерархии классов
Здравствуйте! Столкнулся со следующей проблемой, когда сериализую класс в файл, то мне выдается ошибка на строке сериализации ...

Объекты иерархии классов в массив
Дана иерархия классов и нужно создать массив объектов этих классов, и вывести их с помощью foreach. Помогите советом.


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки 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 Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru