using System;
class Program {
static void Main() {
//-----------------
Shirt someShirt = new Shirt();
someShirt.name = "Кислота";
someShirt.size = 48;
Cup someCup = new Cup();
someCup.name = "Омут";
someCup.volume = 250;
Note someNote = new Note();
someNote.name = "Грибы";
someNote.pages = 180;
Good someGood = new Good();
someGood.name = "Какая-то хрень";
Good[] goods = new Good[4];
goods[0] = someShirt;
goods[1] = someCup;
goods[2] = someNote;
goods[3] = someGood;
//-----------------
for(int i = 0; i < 4; i++)
{
goods[i].AddToCart();
}
}
}
public class Good // товар
{
public string name; // название
public virtual void AddToCart() // метод "Добавить в корзину", virtual означает что этот метод можно переопределить в классах-наследниках
{
Console.WriteLine("Товар " + name + " добавлен в корзину");
}
}
public class Cup : Good // кружка
{
public int volume; // объем
public override void AddToCart()
{
Console.WriteLine("Кружка " + name + ", объемом " + volume + "мл добавлена в корзину");
}
}
public class Note : Good // Блокнот
{
public int pages; // количество страниц
public override void AddToCart()
{
Console.WriteLine("Блокнот " + name + " на " + pages + " страниц добавлен в корзину");
}
}
public class Shirt : Good // футболка
{
public int size; // размер футболки
public override void AddToCart() // override - переопределение метода класса-родителя
{
Console.WriteLine("Футболка " + name + ", размером " + size + " добавлена в корзину");
}
}