Оценить код с точки зрения принципов ООП и корректность в целом - C#
Формулировка задачи:
Извиняюсь заранее, если не в ту тему не с той просьбой. Прошу посмотреть код, оценить его с точки зрения принципов ооп да и правильность в целом. Имею желание перестать говнокодить, вот первая попытка.
Описание: имеем абстрактный класс Animal, с 3 защищенными полями и 2 виртуальными методами. От этого класса наследуются 3 класса потомка, в которых описан конструктор и переопределен метод ShowInfo(). В главном методе Main() создаем экземпляры классов с параметрами и вызываем методы базового и производных классов.
Animal.cs
Main.cs
Cat.cs(аналогично созданы классы dog и fox)
using System;
abstract class Animal
{
protected string _tip;
protected string _name;
protected int _ves;
public virtual void ShowInfo()
{
Console.WriteLine("Меня зовут {0}, я {1} и мой вес {2} кг.", _name, _tip, _ves);
}
public virtual void Sound(){}
}using System;
class Program
{
static void Main()
{
Cat cat = new Cat("Вася", 11);
Dog dog1 = new Dog("Бобик", 16);
Dog dog2 = new Dog("Бобище", 27);
Fox fox = new Fox("Патрикеевна", 16);
cat.ShowInfo();
cat.Sound();
dog1.ShowInfo();
dog1.Sound();
dog2.ShowInfo();
dog2.Sound();
fox.ShowInfo();
fox.Sound();
Console.ReadKey();
}
}using System;
class Cat:Animal
{
public Cat(string name, int ves)
{
_tip = "кот";
_name = Name;
_ves = Ves;
}
public override void Sound()
{
Console.WriteLine("Я говорю мяу");
}
}Решение задачи: «Оценить код с точки зрения принципов ООП и корректность в целом»
textual
Листинг программы
var animals = new Animal[]
{
new Cat("Вася", 11),
new Dog("Бобик", 16),
new Dog("Бобище", 27),
new Fox("Патрикеевна", 16)
};
foreach (var animal in animals)
{
animal.ShowInfo();
animal.Sound();
}