Junior — Middle
Фарқи байни модификаторҳои дастрасии private ва protected дар барномасозии объектӣ-ба асоси чӣ аст?
sobes.tech AI
Ҷавоб аз AI
Дар объектӣ-ба равишти объектӣ (бо мисоли C#) тағйирёбандаҳои дастрасӣ private ва protected дар сатҳи намоёнӣ ёдгориҳои синф фарқ мекунанд:
-
private — аъзои синф танҳо дар дохили худи синф дастрас аст. Ҳеҷ як субсинф ё синфи дигар ба он дастрасӣ надорад.
-
protected — аъзои синф дар дохили худи синф ва дар ҳамаи субсинфҳои он (ҳередиториҳо), ҳатто агар дар фазои номгӯӣ дигар ҷойгир бошанд, дастрас аст.
Масалан:
class BaseClass
{
private int privateField = 1;
protected int protectedField = 2;
void Show()
{
Console.WriteLine(privateField); // Дастрас
Console.WriteLine(protectedField); // Дастрас
}
}
class DerivedClass : BaseClass
{
void ShowDerived()
{
// Console.WriteLine(privateField); // Хатогӣ: privateField дастрас нест
Console.WriteLine(protectedField); // Дастрас
}
}
Бинобар ин, protected доираи намоёнӣро дар муқоиса бо private васеъ мекунад, имкон медиҳад, ки ҳередиториҳо бо аъзои муҳофизатшудаи синфи асосӣ кор кунанд.