Sobes.tech
Junior

Ինչու որոշ ինտերֆեյսներում մեթոդներ չեն սահմանվում?

sobes.tech AI

Պատասխան AI-ից

Մարկեր ինտերֆեյսներ (նշանակող ինտերֆեյսներ) մեթոդներ չեն սահմանում։ Դրանք ծառայում են դասը նշելու համար՝ ցույց տալու համար, որ այն ունի որոշակի հատկանիշ կամ հնարավորություն։

Մարկեր ինտերֆեյսների օրինակներ՝

  • java.io.Serializable: Նշում է դասը, որի օբյեկտները կարող են սերիալիզացվել։
  • java.lang.Cloneable: Նշում է դասը, որի օբյեկտները կարող են կլոնավորվել (աջակցում է clone() մեթոդին):
  • java.util.RandomAccess: Նշում է ցանկերը, որոնք ապահովում են արագ (հաստատ ժամանակ) պատահական մուտք իրենց տարրերին:

Մարկեր ինտերֆեյսների օգտագործումը թույլ է տալիս՝

  • Դասերի նույնականացում: Օբյեկտի տիպը ստուգել instanceof օպերատորով:
    // ստուգել, արդյոք օբյեկտը սերիալիզացվող է
    if (object instanceof Serializable) {
        // իրականացնել սերիալիզացիա
    }
    
  • Կարգավիճակի փոփոխում: API-ները կարող են փոխել իրենց վարքագիծը՝ կախված այն բանից, արդյոք դասը իրականացնում է մարկեր ինտերֆեյսը։ Օրինակ, եթե ցանկը իրականացնում է RandomAccess, ապա նրա վրա գործողությունները կարող են օպտիմալացվել:
  • Մուտքի սահմանափակում: Որոշ API-ներ կարող են պահանջել, որ փոխանցվող օբյեկտները իրականացնում են որոշակի մարկեր ինտերֆեյս:
  • Նշումներ: Մոդեռն մոտեցումներում, շատ սցենարներում մարկեր ինտերֆեյսների օգտագործումը իրականացնում է annotations-ների միջոցով։ Սակայն, մարկեր ինտերֆեյսները դեռևս օգտագործվում են Java-ի ստանդարտ գրադարանում և legacy կոդում։