Иллюстрированный самоучитель по VB.NET



         

Обращение к функциональности базового класса - часть 2


m_Programmers = Programmers

End Sub

Public Function Boast(ByVal aGeek As Programmer) As String

Return "Hey my salary is " & aGeek.Salary

End Function

End Class

> Таблица 5.1. Модификаторы уровня доступа при наследовании

Модификатор

Описание

Friend Доступ предоставляется только из текущей сборки
Private Доступ предоставляется только объектам базового класса
Protected Доступ ограничивается объектами базового класса и объектами любых производных классов
Protected Friend Доступ предоставляется только из текущей сборки или из классов, производных отданного базового класса (может рассматриваться как комбинация модификаторов Protected и Friend)
Public Доступ к члену класса предоставляется всем, кто имеет доступ к классу в соответствии с модификатором самого класса

Также допустим, что в класс Empl oyee входит свойство Sal агу, доступное только для чтения и помеченное модификатором Protected вместо Public:

Protected Readonly Property Salary() As Decimal

Get

Return MyClass.m_Salary

End Get End Property

В результате компилятор выдает сообщение об ошибке:

C:\vb net book\chapter 5\Examplel\Examplel\Moduleld.vb(19):

'Examplel. Modulel.Employee. Protected Readonly Property Salary()

As Decimal' is Protected.and is not accessible in this context.

Хотя класс Programmer обладает доступом к защищенному свойству Salary в своем коде, объекты Programmer не имеют доступа к этому методу за пределами кода класса Programmer. Подведем итог:

Обращение к Protected-методам базового класса возможно только из объектов производного класса, но не из внешних ссылок на эти объекты за пределами производного класса.




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