Junior
Как работает модификатор доступа protected в языках программирования?
sobes.tech Süni İntellekt
AI-dan cavab
Giriş modifikatoru protected, sinif üzvlərinin (sahələr, metodlar) görünürlük səviyyəsini müəyyən edir. Onlara giriş məhdudlaşdırılmışdır:
- Sinif daxilində: Giriş icazə verilir.
protectedüzvlər sinif daxilində hər yerdən görünür. - Miras alan siniflərdə: Giriş icazə verilir.
protectedüzvləri olan sinifdən miras alan siniflər, hətta başqa paketdə olsa belə, bu üzvlərə birbaşa müraciət edə bilər (bəzi dillərdə, məsələn, Java). - Eyni paket daxilində (bəzi dillərdə, məsələn, Java): Giriş icazə verilir,
default(paket-private) ilə bərabərdir.protectedüzvlər, miras almaqdan asılı olmayaraq, eyni paketdəki bütün sinflər üçün görünür. - Xaricdən (başqa paketlər, miras almayan sinflər): Giriş qadağandır.
protectedüzvlərinə birbaşa giriş, miras almayan və ya eyni paketdə olmayan sinflərdən mümkün deyil (Java).
Nümunə (Java):
class BaseClass {
protected int protectedMember = 10;
protected void protectedMethod() {
// Sinif daxilində giriş icazə verilir
System.out.println("BaseClass-dan protected metod");
}
}
class DerivedClass extends BaseClass {
void accessProtected() {
// Miras alan sinifdən giriş icazə verilir
System.out.println(protectedMember);
protectedMethod();
}
}
class SamePackageClass {
void accessProtected(BaseClass obj) {
// Java-da, eyni paketdəki başqa sinfdən giriş icazə verilir
System.out.println(obj.protectedMember);
obj.protectedMethod();
}
}
class DifferentPackageClass {
// ...
// Giriş cəhdləri tərtib xətası ilə nəticələnəcək
// obj.protectedMember;
// obj.protectedMethod();
}
Beləliklə, protected public-dən daha yüksək, private və ya default-dən isə aşağı səviyyədədir, sinif üzvlərini miras alanlara və bəzi dillərdə, eyni paketdə olan sinflərə əlçatan edir.