ПОНЯТНО О Visual Basic NET (том 3)


Наследование - часть 2


Рассмотрим пример. Пусть имеется класс clsПрямоугольник. Его дело – предоставлять внешнему пользователю возможность вычислять по длине и ширине прямоугольника его площадь и периметр:

Public Class clsПрямоугольник

    Public Длина As Integer

    Public Ширина As Integer

    Public Function Площадь() As Integer

        Return    Длина * Ширина

    End Function

 

    Public Function Периметр() As Integer

        Return    2 * Длина + 2 * Ширина

    End Function

End Class

Предположим, впоследствии у нас появилась необходимость по длине, ширине и высоте параллелепипеда вычислять его объем. Мы могли бы просто дополнить наш класс clsПрямоугольник следующим кодом:

    Public Высота As Integer

 

    Public Function Объем() As Integer

        Return Площадь() * Высота

    End Function

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

Поэтому создаем новый класс – clsПараллелепипед:

Public Class clsПараллелепипед

    Inherits

clsПрямоугольник

    Public Высота As Integer

 

    Public Function Объем() As Integer

        Return Площадь() * Высота

    End Function

End Class

Как видите, класс получился очень короткий, но делает все что нужно. Это заслуга наследования. Строка

    Inherits

clsПрямоугольник

говорит о том, что он наследует все компоненты класса clsПрямоугольник. Слово Inherits переводится «наследует». В простейшем случае наследование выглядит так, как если бы мы скопировали код родителя в тело наследника.

Обратите внимание, что не все, что есть у родителя, нужно наследнику. Я имею в виду периметр. Ну что ж, видимо, идеальных родителей не бывает.

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

Public Class clsКоробка




Начало  Назад  Вперед



Книжный магазин