Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Организация защищенного доступа





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

Защищенный член создается с помощью модификатора доступа protected. Если член класса объявляется как protected, он становится закрытым, но за исключением одного случая, когда защищенный член наследуется.

//продемострировать применение модификатора доступа protected.

using System;

class B

{

protected int i, j; //члены, закрытые для класса B, но доступные для класса D

public void Set(int a, int b)

{

i = a;

j = b;

}

public void Show()

{

Console.WriteLine(i + " " + j);

}

}

class D: B

{

int k; //закрытый член

//члены i и j класса B доступны для класса D

public void Setk()

{

k = i * j;

}

public void Showk()

{

Console.WriteLine(k);

}

}

class ProtectedDemo

{

static void Main()

{

D ob = new D();

ob.Set(2, 3); //допустимо, поскольку доступно для класса D

ob.Show(); // допустимо, поскольку доступно для класса D

ob.Setk(); // допустимо, поскольку доступно для класса D

ob.Showk();// допустимо, поскольку доступно для класса D

}

}

В данном примере класс В наследуется классом D, а его члены i и j объявлены как protected, и поэтому они доступны для метода Setk().

Таким образом, модификатор доступа protected следует применять в том случае, если требуется создать член класса, доступный для всей иерархии классов, но для остального кода он должен быть закрытым. А для управления доступом к значению члена класса лучше воспользоваться свойством.







Date: 2015-09-02; view: 386; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.008 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию