Наследование классов – это способность одного класса использовать свойства и методы, объявленные в другом классе. Класс в c# (си шарп), предоставляющий свои свойства и методы, называется базовым (или родительским), а класс, наследующий их – дочерним.
Понятно, что эти два класса логически связаны между собой: например, класс «Человек» – родительский, классы «Женщина» и «Мужчина» — дочерние. У объектов всех трех классов будут общие свойства и методы, например, рост, вес, возраст и т.д., которые исходят из того, что все объекты относятся в первую очередь к классу «Человек». Значит, можно объявить общие свойства единожды в этом классе, а затем наследовать их.
Рассмотрим наследование на примере создания класса Cat (кошка) и наследующего его класса HomeCat (домашняя кошка). У всех кошек есть возраст, а у домашних кошек есть возраст и кличка.
public abstract class Cat //базовый класс
{
protected int age;//возраст
public int Age
{
get { return age; }
set
{
if (value > 0) age = value;
else age = 0;
}
}
public abstract void View();//абстрактный метод
public Cat()
{ age = 0; }
public Cat(int a)
{
if (a > 0) age = a;
else age = 0;
}
}
public class HomeCat : Cat //дочерний класс
{
private string name; //кличка
public string Name
{ get { return name; }
set { name = value; }
}
public HomeCat() : base()
{
name = «no name»;
}
public HomeCat (int a,string n): base (a)
{
name = n;
}
public override void View()
{
Console.WriteLine(«Домашняя кошка {0},{1}», Name, Age);
}
}
Головная программа:
Cat kot = new HomeCat(5, «Васька»);
kot.View();
Console.ReadLine();
Обратим внимание, что в базовом классе объявлен абстрактный пустой метод View(), который переопределяется в дочернем классе. Если добавить к этому примеру еще один дочерний класс, можно было бы еще раз переопределить в нем метод View(). Выражение HomeCat : Cat и указывает на то, что класс HomeCat наследует класс Cat. Изменения произошли также в конструкторе дочернего класса: в нем нужно указать, что наследуется из базового класса. Это делается с помощью слова base и в конструкторе по умолчанию, и в конструкторе с параметрами. Логика работы с объектом класса в головной программе не изменилась: создаем объект, задаем его аргументы и вызываем для него метод.
. наследование абстрактный класс c# библиотечный класс в си шарпе cjplfybt f,cnhfrnjyuj rkfccf d cb ifhgt наследование си шарп пример дочерние классы в c#