0 / 0 / 0
Регистрация: 31.10.2015
Сообщений: 9
1

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

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

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

Код писал сам по разным файлам из гугла, старался как мог, но уже упарился совсем не доходит до меня.
Вот задание у меня есть 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.11.2015, 00:54
Ответы с готовыми решениями:

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

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

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

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

1
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
10.11.2015, 01:56 2
Цитата Сообщение от 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
10.11.2015, 01:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.11.2015, 01:56
Помогаю со студенческими работами здесь

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

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru