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

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

10.11.2015, 00:54. Показов 2996. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru