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

// Вызвать скрытый метод.

using System;

class А {

public int i = 0;

11Метод Show() в классе A public void Show() {

Console.WriteLine("Член i в базовом классе: " + i);

}

}

// Создать производный класс, class В : А {

new int i; // этот член скрывает член i из класса А

public В(int a, int b) {

base.i = а; // здесь обнаруживается скрытый член из класса А

i = Ь; // член i из класса В

}

// Здесь скрывается метод Show() из класса А. Обратите // внимание на применение ключевого слова new. new public void Show() {

base.Show (); // здесь вызывается метод Show() из класса А

// далее выводится член i из класса В

Console.WriteLine("Член i в производном классе: " + i);

}

}

class UncoverName { static void Main() {

В ob = new В (1, 2); ob.Show ();

}

}

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

Член i в базовом классе: 1 Член i в производном классе: 2

Как видите, в выраженииbase. Show() вызывается вариант методаShow() из базового класса.

Обратите также внимание на следующее: ключевое слово new используется в приведенном выше коде с целью сообщить компилятору о том, что методShow(), вновь объявляемый в производном классеВ,намеренно скрывает другой методShow (),определенный в базовом классеА.

Создание многоуровневой иерархии классов

В представленных до сих пор примерах программ использовались простые иерархии классов, состоявшие только из базового и производного классов. Но в C# мож

но также строить иерархии, состоящие из любого числа уровней наследования. Как упоминалось выше, многоуровневая иерархия идеально подходит для использования одного производного класса в качестве базового для другого производного класса. Так, если имеются хри класса,А, ВиС,то классСможет наследовать от классаВ,а тот, в свою очередь, от классаА.В таком случае каждый производный класс наследует характерные особенности всех своих базовых классов. В частности, классСнаследует все члены классовВиА.

Перейти на страницу:

Похожие книги