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


Абстрактные классы - часть 2


Public Class Участок_прямоугольный

    Inherits Участок_абстрактный

    Public Длина, Ширина As Integer

 

    Public Overrides

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

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

    End Function

End Class

Public Class Участок_треугольный

    Inherits Участок_абстрактный

    Public Сторона1, Сторона2, Сторона3

As Integer

    Public Overrides

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

        Return    Сторона1 + Сторона2 + Сторона3

    End Function

End Class

Public Class Участок_круглый

    Inherits Участок_абстрактный

    Public Радиус As Integer

 

    Public Overrides

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

        Return    2 * Math.PI * Радиус

    End Function

End Class

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

В нашу систему классов я могу включить и класс Участок_штакетник. Я сделаю его сыном прямоугольного участка и, значит, внуком абстрактного:

Public Class Участок_штакетник

    Inherits Участок_прямоугольный

    Public Overrides Function Площадь_забора() As Integer

        Return 0.5 * MyBase.Площадь_забора

    End Function

End Class

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




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