Шаг 150.
Язык программирования C#. Начала
Наследование. Примеры использования

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

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

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

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

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

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

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

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

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

    Во второй части обсуждаются несколько фундаментальных концепций, которые в полной мере раскрывают красоту и мощь языка С#. Там мы познакомимся с интерфейсами и абстрактными классами. Узнаем, что такое делегаты, ссылки на методы, лямбда-выражения и анонимные методы, познакомимся с событиями. Познакомимся с перечислениями и выясним, чем структуры отличаются от классов. Мы научимся с помощью указателей выполнять операции с памятью. Узнаем, как в языке C# реализуется перехват и обработка ошибок. Для нас откроются секреты создания многопоточных приложений. Мы научимся использовать обобщенные типы и сможем создавать приложения с графическим интерфейсом. Еще будут операции с файлами, знакомство с коллекциями и многое другое. Так что работа предстоит большая и интересная.

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




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