Junior
Nega ba'zi interfeyslar metodlarni belgilamaydi?
sobes.tech AI
AIdan javob
Bunday interfeyslar marker interfeyslar (belgilovchi interfeyslar) deb ataladi. Ular metodlarni o'z ichiga olmaydi va sinflarni annotatsiya qilish uchun xizmat qiladi, kompilator yoki JVMga sinfning ma'lum xususiyatlari yoki semantikasi haqida ko'rsatadi.
Misollar:
java.io.Serializable: Sinfni serializatsiya qilish mumkinligini belgilaydi.java.lang.Cloneable: Ob'ektni klonlash mumkinligini ko'rsatadi.java.util.RandomAccess: Ro'yxat elementlariga tasodifiy kirishni optimallashtiradi.
Afzalliklar:
- Semantika: Sinfga nisbatan dasturchining niyatini aniq belgilaydi.
- Polimorfizm: Bir xil marker interfeysni amalga oshirgan sinflar guruhida polimorfik chaqiruvlarni ishlatishga imkon beradi.
- Annotatsiya: Asboblar (masalan, freymvorklar, ORM) uchun qo'shimcha ma'lumot berish uchun ishlatilishi mumkin.
Alternativlar (kontekstga qarab):
- Annotatsiyalar (
@interface). - Abstrakt sinflar.
Marker interfeyslar, sinfning xulq-atvorini qo'shmasdan, atributini belgilash kerak bo'lsa, afzalroq.