Привет‚ меня зовут Алексей и я хочу поделиться своим опытом создания классов на языке C#.
Когда я столкнулся с задачей создания классов Animal‚ Dog‚ Cat и Bear‚ я начал с создания базового класса Animal. В классе Animal я определил переменную name и абстрактные методы MakeNoise‚ Eat и GetDescription.
csharp
public abstract class Animal
{
public string name;
public abstract void MakeNoise;
public abstract void Eat;
public abstract string GetDescription;
}
Затем я создал классы Dog‚ Cat и Bear‚ расширяющие класс Animal. В каждом из этих классов я переопределил методы MakeNoise‚ Eat и GetDescription в соответствии с поведением каждого животного.csharp
public class Dog ⁚ Animal
{
public override void MakeNoise
{
Console.WriteLine(″Dog is barking...″);
}
public override void Eat
{
Console.WriteLine(″Dog is eating...″);
}
public override string GetDescription
{
return ″This is a dog.″;
}
}
public class Cat ⁚ Animal
{
public override void MakeNoise
{
Console.WriteLine(″Cat is meowing...″);
}
public override void Eat
{
Console.WriteLine(″Cat is eating...″);
}
public override string GetDescription
{
return ″This is a cat.″;
}
}
public class Bear ⁚ Animal
{
public override void MakeNoise
{
Console.WriteLine(″Bear is roaring..;″);
}
public override void Eat
{
Console.WriteLine(″Bear is eating...″);
}
public override string GetDescription
{
return ″This is a bear.″;
}
}
Далее я создал класс Ветеринар‚ в котором определил метод void TreatAnimal(Animal animal). Внутри этого метода я просто распечатывал имя и описание переданного на прием животного.csharp
public class Veterinarian
{
public void TreatAnimal(Animal animal)
{
Console.WriteLine(″Name⁚ ″ animal;name);
Console.WriteLine(″Description⁚ ″ animal.GetDescription);
}
}
Наконец‚ в методе Main я создал массив типа Animal и заполнил его экземплярами всех доступных мне животных. Затем‚ с помощью цикла‚ я отправил каждого животного к ветеринару.csharp
static void Main(string[] args)
{
Animal[] animals new Animal[]
{
new Dog { name ″Buddy″ }‚
new Cat { name ″Garfield″ }‚
new Bear { name ″Baloo″ }
};
Veterinarian vet new Veterinarian;
foreach (Animal animal in animals)
{
vet.TreatAnimal(animal);
}
foreach (Animal animal in animals)
{
animal.MakeNoise;
animal.Eat;
}
}
Я создал экземпляры Dog‚ Cat и Bear‚ каждому назначил имя и отправил их на прием к ветеринару. В результате‚ в консоль были выведены имена и описания каждого животного.
В отдельном цикле я вызвал методы makeNoise и eat для каждого животного. Таким образом‚ были выведены звуки и действия каждого животного.
Вот и всё! Я создал классы Animal‚ Dog‚ Cat и Bear‚ определил методы MakeNoise‚ Eat и GetDescription‚ а также создал класс Ветеринар для обработки животных. Мой личный опыт помог мне понять‚ как использовать наследование и переопределение методов в C#.