ინტერფეისები

interface საკვანძო სიტყვის გამოყენება საშუალებას გვაძლევს კლასის ინტერფეისი სრულად გამოვყოთ მისი რეალიზაციისგან. სხვა სიტყვებით რომ ვთქვათ, interface საკვანძო სიტყვის გამოყენებით შეგვიძლია მივუთითოთ ის მოქმედებები, რაც კლასმა უნდა შეასრულოს, მაგრამ არა ის, თუ როგორ შეასრულოს ეს მოქმედებები. სინტაქსური თვალსაზრისით, ინტერფეისები კლასების ანალოგიურია, მაგრამ ისინი არ შეიცავენ ეგზემპლიარის ცვლადებს, ხოლო მათი მეთოდების გამოცხადება არ მოიცავს მეთოდების ტანს. პრაქტიკაში ეს ნიშნავს, რომ ინტერფეისები ისე შეგვიძლია გამოვაცხადოთ, რომ მათი რეალიზაცია არ იქნეს მითითებული. ინტერფეისის განსაზღვრის შემდეგ, მისი რეალიზება კლასების ნებისმიერ რაოდენობას შეუძლია. ამას გარდა, ერთ კლასს ინტერფეისების ნებისმიერი რაოდენობის რეალიზება შეუძლია.

ინტერფეისის რეალიზებისთვის კლასმა უნდა შექმნას ინტერფეისის მიერ განსაზღვრული მეთოდების სრული ნაკრები. interface საკვანძო სიტყვა საშუალებას გვაძლევს სრულად გამოვიყენოთ პოლიმორფიზმის კონცეფცია: „ერთი ინტერფეისი, მრავალი მეთოდი“. რადგან ინტერფეისების იერარქია არ ემთხვევა კლასების იერარქიას, ამიტომ კლასებს, რომლებიც კლასების იერარქიაში ერთმანეთთან დაკავშირებული არ არიან, შეუძლიათ ერთი და იმავე ინტერფეისის რეალიზება.
ინტერფეისის განსაზღვრა გარკვეულწილად კლასის განსაზღვრის მსგავსია. ინტერფეისის გამარტივებულ  ფორმას შემდეგი სახე აქვს:
წვდომის მოდიფიკატორი interface სახელი

{

დასაბრუნებელი შედეგის_ ტიპი მეთოდი1_სახელი(პარამეტრების_სია);
დასაბრუნებელი შედეგის_ ტიპი მეთოდი2_სახელი(პარამეტრების_სია);
ტიპი ცვლადი1_სახელი=მნიშვნელობა
; ტიპი ცვლადი2_სახელი=მნიშვნელობა;

//…

დასაბრუნებელი შედეგის_ ტიპი მეთოდიN_სახელი(პარამეტრების_სია);
ტიპი ცვლადიN_სახელი=მნიშვნელობა;
}

თუ ინტერფეისის განსაზღვრა წვდომის არანაირ მოდიფიკატორს არ შეიცავს, მაშინ სტანდარტული წვდომა გამოიყენება და ინტერფეისი წვდომადი ხდება მხოლოდ იმ პაკეტის სხვა წევრებისთვის, რომელშიც თავად ინტერფეისია განსაზღვრული. თუ ინტერფეისი გამოცხადებულია, როგორც public, მაშინ მისი გამოყენება ნებისმიერ სხვა კოდს შეუძლია. ასეთ შემთხვევაში, ეს უნდა იყოს ფაილში გამოცხადებული ერთადერთი ღია ინტერფეისი და ფაილის სახელი უნდა ემთხვეოდეს ინტერფეისის სახელს.

ინტერფეისის ზემოაღნიშნულ განსაზღვრაში სახელის ქვეშ ინტერფეისის სახელი იგულისხმება. ის ნებისმიერი დასაშვები იდენტიფიკატორია. ყურადღება მიაქციეთ იმ ფაქტს, რომ გამოცხადებული მეთოდები ტანს არ მოიცავენ. მათი გამოცხადება სრულდება პარამეტრების სიით, რომელსაც „წერტილ–მძიმის“ სიმბოლო მოსდევს. ერთი შეხედვით, ეს აბსტრაქტული მეთოდებია. კლასი, რომელიც ახდენს ინტერფეისის რეალიზებას, ამავდროულად, ინტერფეისში გამოცხადებული ყველა მეთოდის რეალიზებას უნდა ახორციელებდეს.

ინტერფეისის გამოცხადება ცვლადების გამოცხადებასაც მოიცავს. ეს ცვლადები არაცხადი სახით განიხილება, როგორც final და static, ანუ კლასი, რომელიც ინტერფეისის რეალიზებას ახდენს, ამ ცვლადების მნიშვნელობებს ვერ ცვლის. ამას გარდა, ცვლადები ინიციალებული უნდა იყოს. ყველა მეთოდი და ცვლადი არაცხადი სახით განიხილება, როგორც public.

ქვემოთ ნაჩვენებია ინტერფეისის განსაზღვრის მაგალითი. მასში მარტივი ინტერფეისია

გამოცხადებული, რომელიც მოიცავს მხოლოდ ერთ callback() მეთოდს ერთი მთელრიცხვა პარამეტრით.

interface Callback{ void callback(int param);

}

ინტერფეისებთან დაკავშირებული ვიდეო მასალა შეგიძლიათ იხილოთ ბმულზე:

ლელა გაჩეჩილაძე
ნონა ოთხოზორია