Triangle()    {

Style = 'null';

}

// Конструктор, принимающий три аргумента, public Triangle(

string s, double w, double h) : base(w, h) {

Style = s;

}

// Сконструировать равнобедренный треугольник, public Triangle(double x) : base(x) {

Style = 'равнобедренный';

}

// Возвратить площадь треугольника, public double Area()    {

return Width * Height / 2;

}

// Показать тип треугольника, public void ShowStyleO {

Console.WriteLine('Треугольник ' + Style);

}

}

class Shapes5 {

static void Main() {

Triangle tl    =    new    Triangle();

Triangle t2    =    new    Triangle('прямоугольный',    8.0, 12.0);

Triangle t3    =    new    Triangle(4.0);

tl = t2;

Console.WriteLine('Сведения об объекте tl: '); tl.ShowStyle(); tl.ShowDim();

Console.WriteLine('Площадь равна ' + tl.AreaO);

Console.WriteLine();

Console.WriteLine('Сведения об объекте t2: '); t2.ShowStyle (); t2.ShowDim();

Console.WriteLine('Площадь равна ' + t2.Area());

Console.WriteLine();

Console.WriteLine('Сведения об объекте t3: '); t3.ShowStyle(); t3.ShowDim();

Console.WriteLine('Площадь равна ' + t3.Area());

Console.WriteLine();

}

}

Вот к какому результату приводит выполнение этого кода.

Сведения об объекте tl:

Треугольник прямоугольный Ширина и высота равны 8 и 12 Площадь равна 48

Сведения об объекте t2:

Треугольник прямоугольный Ширина и высота равны 8 и 12 Площадь равна 48

Сведения об объекте t3:

Треугольник равнобедренный Ширина и высота равны 4 и 4 Площадь равна 8

А теперь рассмотрим вкратце основные принципы действия ключевого слова base. Когда в производном классе указывается ключевое слово base, вызывается конструктор из его непосредственного базового класса. Следовательно, ключевое слово base всегда обращается к базовому классу, стоящему в иерархии непосредственно над вызывающим классом. Это справедливо даже для многоуровневой иерархии классов. Аргументы передаются базовому конструктору в качестве аргументов метода base (). Если же ключевое слово отсутствует, то автоматически вызывается конструктор, используемый в базовом классе по умолчанию.

Наследование и сокрытие имен

В производном классе можно определить член с таким же именем, как и у члена его базового класса. В этом случае член базового класса скрывается в производном классе. И хотя формально в C# это не считается ошибкой, компилятор все же выдаст сообщение, предупреждающее о том, что имя скрывается. Если член базового класса требуется скрыть намеренно, то перед его именем следует указать ключевое слово new, чтобы избежать появления подобного предупреждающего сообщения. Следует,

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату