Наследование является одним из трех основополагающих принципов объектно-ориентированного программирования, поскольку оно допускает создание иерархических классификаций. Благодаря наследованию можно создать общий класс, в котором определяются характерные особенности, присущие множеству связанных элементов. От этого класса могут затем наследовать другие, более конкретные классы, добавляя в него свои индивидуальные особенности.
В языке C# класс, который наследуется, называется
Основы наследования
Поддержка наследования в C# состоит в том, что в объявление одного класса разрешается вводить другой класс. Для этого при объявлении производного класса указывается базовый класс. Рассмотрим для начала простой пример. Ниже приведен класс TwoDShape, содержащий ширину и высоту двухмерного объекта, например квадрата, прямоугольника, треугольника и т.д.
// Класс для двумерных объектов, class TwoDShape {
public double Width;
public double Height;
public void ShowDimO {
Console.WriteLine("Ширина и высота равны " +
Width + " и " + Height);
}
}
КлассTwoDShapeможет стать базовым, т.е. отправной точкой для создания классов, описывающих конкретные типы двумерных объектов. Например, в приведенной ниже программе классTwoDShapeслужит для порождения производного классаTriangle.Обратите особое внимание на объявление классаTriangle.
// Пример простой иерархии классов, using System;
// Класс для двумерных объектов. class TwoDShape {
public double Width; public double Height; public void ShowDimO {
Console.WriteLine("Ширина и высота равны " +
Width + " и " + Height);
}
}
// Класс Triangle, производный от класса TwoDShape. class Triangle : TwoDShape {
public string Style; // тип треугольника
// Возвратить площадь треугольника, public double Area {
return Width * Height / 2;
}
// Показать тип треугольника, public void ShowStyleO {
Console.WriteLine("Треугольник " + Style);
}
}
class Shapes {
static void Main {
Triangle tl = new Triangle; Triangle t2 = new Triangle;
tl.Width = 4.0;
tl.Height = 4.0;
tl.Style = "равнобедренный";
t2.Width = 8.0;
t2.Height = 12.0;
t2.Style = "прямоугольный";
tl.ShowStyle ; tl.ShowDim;
Console .WriteLine ("Площадь равна " + tl.AreaO);
Console.WriteLine;
Console.WriteLine("Сведения об объекте t2: "); t2.ShowStyle; t2.ShowDim;