Учебно-методическое пособие для студентов и слушателей системы повышения



бет50/75
Дата16.03.2023
өлшемі1,62 Mb.
#74783
түріУчебно-методическое пособие
1   ...   46   47   48   49   50   51   52   53   ...   75

Наследование




Цель работы: формирование навыков реализации наследования.


Введение
Наследование (inheritance) – это процесс приобретения состояния и пове- дения одного класса (называемого базовым или предком) другим классом (называемым производным, наследником или потомком). Для любого класса, кроме бесплодного (модификатор sealed), можно задать классы-наследники, в которых повторяется и дополняется состояние и поведение предка.
Синтаксис объявления производного класса (потомка):
[ модификаторы ] class Имя : класс-предок, интерфейсы…
{ тело класса }
Класс в C# может иметь произвольное количество потомков и только один класс-предок. В то же время, класс может наследоваться от произвольного ко- личества интерфейсов. Наследование позволяет многократно использовать про- граммный код, исключать из программы повторяющиеся фрагменты; упрощает модификацию программ и создание новых классов на основе существующих. Благодаря наследованию можно, например, использовать объекты, исходный код которых недоступен, но в поведение которых требуется внести изменения.
Наследование позволяет строить иерархии объектов. Они представляется в виде деревьев, в которых более общие объекты (предки) располагаются ближе к корню, а более специализированные (потомки) – на ветвях и листьях (рис. 2.6).


Рис. 2.6. Иерархии классов в окне Схема классов


Фрагменты программного кода для этих иерархий:
class Computer { ... } // базовый класс class Animal { ... }
class Notebook : Computer // потомки class Cat : Animal
{ ... } { ... }
class Netbook : Notebook class Dog : Animal
{ ... } { ... }
Возможны различные стратегии классического наследования:

  • функционал потомка остается неизменным;

  • функционал методов базового класса скрывается и замещается в произ- водном класса (модификатор new);

  • функционал методов базового класса, называемых виртуальными (моди-

фикатор virtual), переопределяется в производном классе (модификатор override).
Отметим важные особенности классического наследования:

  • Наследуются поля, методы и свойства класса.

  • Конструкторы не наследуются! Класс – потомок должен иметь собствен- ные конструкторы.

  • Объекту базового класса можно присвоить объект производного, например: public class Notebook : Computer { … }



Достарыңызбен бөлісу:
1   ...   46   47   48   49   50   51   52   53   ...   75




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет