Դաս 7․2։ Access Modifiers/ Protected Access Modifier

0

Պաշտպանված մուտքի մոդիֆիկատորներ – Protected

Փոփոխականները, մեթոդները և կոնստրուկտորները, որոնք սահմանված են որպես protected Superclass -ում հասանելի են միայն ենթադասերի այլ փաթեթում կամ որևէ այլ protected դասում, որը ունի protected անդամների դաս։

protected մուտք մոդիֆիկատորը չի կարող կիրառվել դասի և ինտերֆեյսի հետ։ Մեթոդները, դաշտերը կարող են հայտարարվել պաշտպանված, սակայն մեթոդները և դաշտ ինտերֆեյսում չեն կարող սահմանվել որպես պաշտպանված:

Պաշտպանված մուտքը հնարավորություն է տալիս ենթադասին օգտագործել օգնությունը մեթոդը/ helper method/ կամ փոփոխականը՝ կանխելով nonrelated դասի փորձը այն օգտագործել։

Օրինակ

Հետեւյալ «ծնող» դասը՝ parent class օգտագործում է protected access control, թույլ տալով իր «երեխա» դասին բացել openSpeaker () մեթոդը –

class AudioPlayer {

  protected boolean openSpeaker(Speaker sp) {

     // implementation details

  }

}

class StreamingAudioPlayer {

  boolean openSpeaker(Speaker sp) {

     // implementation details

  }

}

Այստեղ, եթե մենք սահմանում ենք openSpeaker () մեթոդը որպես private, ապա այն չի կարող հասանելի լինել ցանկացած այլ դասից, բացառությամբ AudioPlayer-ը: Եթե մենք այն սահմանենք որպես public, ապա այն կդառնա հասանելի արտաքին աշխարհի համար: Սակայն մեր մտադրությունն այստեղ, այս մեթոդը բացահայտելն է միայն իր ենթախմբի համար, այդ իսկ նպատակով մենք օգտագործում ենք protected մոդիֆիկատորը։

Մուտքի վերահսկում և ժառանգություն

Հետևյալ կանոնները կիրառվում են մեթոդների համար՝

Superclass-ում Public սահմանված մեթոդները պետք է նաև Public լինեն բոլոր ենթադասարաններում։

Superclass-ում protected սահմանված մեթոդները պետք է ենթադասարաններում սահմանվեն կամ protected, կամ Public։ Դրանք չեն կարող լինել private:

Private սահմանված մեթոդները ժառանգված չեն, ուստի նրանց համար կանոններ չկան:

Share.