Создать абстрактный класс и производные классы - C#
Формулировка задачи:
Помогите пожалуйста, очень надо...
1. Создать абстрактный класс Издание с методами позволяющим вывести на экран информацию об издании, а также определить является ли данное издание искомым.
2. Создать производные классы: Книга (название, фамилия автора, год издания, издательство), Статья (название, фамилия автора, название журнала, его номер и год издания), Электронный ресурс (название, фамилия автора, ссылка, аннотация) со своими методами вывода информации на экран.
3. Создать каталог (массив) из n изданий, вывести полную информацию из каталога, а также организовать поиск изданий по фамилии автора..
Решение задачи: «Создать абстрактный класс и производные классы»
textual
Листинг программы
namespace ConsoleEdition
{
abstract class Edition
{
public string NameOfPublication;
public string LastNameOfAuthor;
public Edition(string nameofpublic,string lastname)
{
NameOfPublication = nameofpublic;
LastNameOfAuthor = lastname;
}
public abstract void GetInformation();
}
class Book :Edition
{
public string YearOfPublication;
public string NameOfEdition;
public Book(string nameofpublic, string lastname,string yearofpublic, string nameofedition):base(nameofpublic,lastname)
{
YearOfPublication = yearofpublic;
NameOfEdition = nameofedition;
}
public override void GetInformation()
{
Console.WriteLine("Information : {0},{1},{2},{3}",NameOfPublication,LastNameOfAuthor,YearOfPublication,NameOfEdition);
}
}
class Article : Edition
{
public string NameOfMagazine;
public int Number;
public string YearOfPublicat;
public Article(string nameofpublic, string lastname, string yearofpublic, string nameofmagazine, int number):base(nameofpublic,lastname)
{
NameOfMagazine = nameofmagazine;
Number = number;
YearOfPublicat = yearofpublic;
}
public override void GetInformation()
{
Console.WriteLine("Information:{0},{1},{2},{3},{4}",NameOfPublication,LastNameOfAuthor,NameOfMagazine,Number,YearOfPublicat) ;
}
}
class InterntEdition : Edition
{
public string Link;
public string Annotation;
public InterntEdition(string nameofpublic, string lastname, string link,string annotation): base(nameofpublic,lastname)
{
Link = link;
Annotation = annotation;
}
public override void GetInformation()
{
Console.WriteLine("Information:{0},{1},{2},{3}",NameOfPublication,LastNameOfAuthor,Link,Annotation);
}
}
class Catalog
{
public List<Edition> list = new List<Edition>();
public void AddEdition(Edition edit)
{
list.Add(edit);
}
public void FindEdition(string lastname)
{
foreach (var p in list.FindAll(p => p.LastNameOfAuthor == lastname))
p.GetInformation();
}
}
class Program
{
static void Main(string[] args)
{
Catalog c = new Catalog();
c.AddEdition(new Book("Book","Test","2005","Star"));
c.AddEdition(new Article("Article","Test","2012","Super",12));
c.AddEdition(new InterntEdition("Internet", "Test", "http", "Annotation"));
foreach (var p in c.list)
{
p.GetInformation();
}
c.FindEdition("Test");
Console.ReadLine();
}
}
}