Шаг 164.
Язык программирования C#. Начала
Абстрактные классы и интерфейсы. Примеры использования

    На этом шаге мы рассмотрим несколько примеров решения задач, в которых используются абстрактные классы и интерфейсы.

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

    Задание 1. Напишите программу, содержащую абстрактный базовый класс с защищенным полем, являющимся ссылкой на целочисленный массив. У класса должен быть конструктор с одним аргументом (определяет размер массива и создает его), целочисленное свойство (значение - размер массива), абстрактный метод (без аргументов, не возвращает результат) и индексатор с целочисленным индексом (доступен для чтения и записи). В производном классе описать абстрактный метод из базового класса, чтобы он отображал в консоли содержимое массива. Индексатор определить так, чтобы с его помощью можно было прочитать значение элемента массива и присвоить значение элементу массива.

Раскрыть/скрыть решение и комментарии.

Задание 2. Напишите программу, содержащую абстрактный класс с двумя защищенными целочисленными полями и конструктор с двумя целочисленными аргументами. В классе должен быть объявлен абстрактный индексатор с целочисленным индексом. Опишите интерфейс, в котором есть метод с целочисленным аргументом и целочисленным результатом. Опишите класс, который наследует абстрактный базовый класс и реализует интерфейс. В этом классе опишите индексатор так, чтобы при четном индексе выполнялось обращение к первому полю, а при нечетном индексе обращение выполнялось ко второму полю. Метод следует описать таким образом, чтобы он результатом возвращал сумму значений полей, умноженную на аргумент метода.

Раскрыть/скрыть решение и комментарии.

Задание 3. Напишите программу, содержащую абстрактный класс и два интерфейса. Класс должен содержать объявление абстрактного свойства (с двумя аксессорами), абстрактного индексатора (с двумя аксессорами) и абстрактного метода. Такое же свойство, индексатор и метод должны быть в интерфейсах. На основе абстрактного класса и интерфейсов необходимо создать класс. В этом классе необходимо выполнить явную реализацию для свойства, индексатора и метода для каждого из интерфейсов. Проверьте работу свойства, индексатора и метода, получив доступ к объекту класса через объектную переменную и через интерфейсные переменные.

Раскрыть/скрыть решение и комментарии.

    На следующем шаге мы начнем знакомиться с делегатами и событиями.




Предыдущий шаг Содержание Следующий шаг