
- •Простейший класс
- •Класс с конструкторами
- •Перегрузка конструкторов
- •Использование свойств в классе
- •Применение свойства наследования на примере виртуальных и абстрактных классов
- •Использование интерфейсов
- •Сравнение обычного массива и семейства
- •Сравнение обычного массива и семейства
- •Создание семейств. Использование индексаторов
- •Перегрузка простейших операций в простейших классах
- •Перегрузка операций с использованием стандартных интерфейсов и методов класса Object
- •Использование делегатов в качестве параметров функции
- •Создание собственной библиотеки классов
Сравнение обычного массива и семейства
Условие задачи
Добавить производный класс к абстрактному классу Animal – класс Собака. Внутри класса предусмотреть метод Лает.
Добавить экземпляр собаки
а) в массив
б) в семейство
продемонстрировать вызов всех методов всех классов
Осуществить работу с семейством:
а) добавить в семейство 2 собаки и 1 курицу
б) удалить из семейства первую встретившуюся собаку
в) добавить в это же семейство вновь созданный массив из 3 коров
4. Продемонстрировать через перебор элементов всех животных в семействе
Листинг программы:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
namespace Laba_8_1
{
public abstract class Animal {
protected string name;
public string Name
{
get
{ return name; }
set
{ name = value; }
}
public Animal()
{ name = "Животное без имени"; }
public Animal(string newName)
{ name = newName; }
public void Feed()
{ Console.WriteLine("{0} кушает ", name); }
}
public class Собака : Animal
{
public void Woof()
{ Console.WriteLine("{0} лает", name); }
public Собака(string newName)
: base(newName)
{ }
}
public class Курица : Animal
{
public void Cuda()
{
Console.Write("{0} кудахчет", name);
}
public Курица(string newName)
: base(newName)
{ }
}
public class Корова : Animal
{
public void Mu(){
Console.WriteLine("{0} мычит",name);
}
public Корова(string newName) : base(newName) { }
}
class Program
{
static void Main(string[] args)
{
Animal[] DogArray = new Animal[1];
DogArray[0] = new Собака("Bono");
ArrayList DogArrayList = new ArrayList();
DogArrayList.AddRange(DogArray);
((Собака)DogArray[0]).Woof();
((Собака)DogArrayList[0]).Woof();
DogArrayList.Add(new Собака("Garry"));
DogArrayList.Add(new Собака("Parry"));
DogArrayList.Add(new Курица("Nessy"));
foreach (Animal a in DogArrayList){
if (Convert.ToString(a.GetType().Name) == "Собака") { DogArrayList.RemoveAt(DogArrayList.IndexOf(a)); break; }
}
foreach (Animal a in DogArrayList) {
a.Feed();
}
Animal[] CowArray = new Animal[3];
CowArray[0] = new Корова("KAB");
CowArray[1] = new Корова("An");
CowArray[2] = new Корова("Al");
DogArrayList.AddRange(CowArray);
Console.WriteLine("В семействе присутствуют:");
foreach (Animal a in DogArrayList)
{
Console.WriteLine(a.Name+"-"+a.GetType().Name);
}
Console.ReadKey();
}
}
}
Тестирование программы
Рисунок 8 – Тестирование программы