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


Полиморфизм - часть 3


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

    End Function

Слово MyBase с точкой указывает, что имеется в виду именно родительская функция.

Когда возникает потребность в коде наследника указать, что имеется в виду именно компонент наследника, а не родителя или кого-то другого, то вместо MyBase употребляют слово MyClass.

Shadows. Когда большой проект, использующий наследование, разрабатывает группа программистов, часто случается, что через некоторое время после того, как проект уже сдан в эксплуатацию и широко используется, выявляются некоторые недостатки проекта, требующие исправления. При этом какие-то родительские классы подвергаются доработке. В результате доработки в коде родительских классов могут возникнуть новые программные элементы (переменные, процедуры и др.), случайно получившие такие же имена, как совсем другие программные элементы ничего не подозревающих наследников. Например, в родительском классе появляется процедура А1, в то время как в наследнике уже давно имеется переменная А1.  VB не любит такие ситуации, считает их конфликтными и рекомендует программистам классов-наследников «на всякий пожарный» явно указывать, что их программный элемент пересиливает (затеняет) любой могущий объявиться программный элемент родителя. Делается это в классе-наследнике так:

Public  Shadows  А1  As  String

Слово Shadows переводится с английского, как «затеняет».

Данная ситуация похожа на ситуацию с переопределением, но это не одно и то же. На различиях я не останавливаюсь.




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



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