Введение в теорию программирования. Объектно-ориентированный подход



             

Объектно-ориентированный подход к программированию - часть 2


С точки зрения языков программирования понятие наследования означает применимость всех или лишь некоторых свойств и/или методов базового (или родительского) класса для всех классов, производных от него. Кроме того, сохранение свойств и/или методов базового класса должно обеспечиваться и для всех конкретизаций (т.е. конкретных объектов) любого производного класса.

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

  1. фреймовой нотации Руссопулоса (названной так по имени своего создателя, N.D. Roussopulos);
  2. диаграмм Хассе (получивших название по имени ученого, который впервые предложил этот способ наглядного представления наследования, H. Hasse).

Рассмотрим пример программы на языке программирования C#, иллюстрирующий концепцию наследования:

class A { // базовый класс int a; public A() {...} public void F() {...} }

// подкласс (наследует свойства //класса A, расширяет класс A) class B:A { int b; public B() {...} public void G() {...} }

Пример представляет собой описание базового класса A и производного от него класса B.

Класс A содержит целочисленный атрибут (т.е. переменную) a, а также два метода (т.е. функции), A() и F(). Класс B содержит целочисленный атрибут (т.е. переменную) b, а также два метода (т.е. функции) B() и G().

Двоеточие B:A в описании класса B означает наследование.

Отметим, что выше был рассмотрен простейший случай наследования, а именно, единичное наследование. Язык программирования C# позволяет реализовать механизмы, поддерживающие и более сложный случай наследования – множественное наследование.

Рассмотрим более подробно особенности наследования, которые реализует данный пример программы на языке C#.

Производный класс B наследует от базового класса А свойство a и метод F(). При этом к классу В добавляются собственные свойство b и метод G().

Заметим, что в отношении операции наследования справедливы следующие ограничения:




Содержание  Назад  Вперед