Դաս 26.1։ Java –Interfaces

0

Ինտերֆեյսների ընդլայնում/Extending Interfaces

Ինտերֆեյսը կարող է ընդլայնել մեկ այլ ինտերֆեյսի այնպես ինչպես դասը կարող է մեկ այլ դաս: extends բանալի բառը օգտագործվում է ինտերֆեյս ընդլայնելու համար, իսկ child interface-ը ժառանգում է parent interface-ի մեթոդները:

Հետևյալ սպորտային ինտերֆեյսը ընդլայնվում է հոկեյի և ֆուտբոլի ինտերֆեյսի կողմից:

Օրինակ՝

// Filename: Sports.java

public interface Sports {

   public void setHomeTeam(String name);

   public void setVisitingTeam(String name);

}

 

// Filename: Football.java

public interface Football extends Sports {

   public void homeTeamScored(int points);

   public void visitingTeamScored(int points);

   public void endOfQuarter(int quarter);

}

 

// Filename: Hockey.java

public interface Hockey extends Sports {

   public void homeGoalScored();

   public void visitingGoalScored();

   public void endOfPeriod(int period);

   public void overtimePeriod(int ot);

}

Հոկեյի ինտերֆեյսը ունի չորս մեթոդ, սակայն այն ժառանգում է երկուսը Սպորտից: Այսպիսով, դասը, որն իրականացնում է հոկեյը, պետք է իրականացնի բոլոր վեց մեթոդները: Նմանապես, այն դասը, որ իրականացնում է ֆուտբոլն, պետք է սահմանի Ֆուտբոլի երեք մեթոդները և Սպորտի երկու մեթոդները:

 

Բազմակի ինտերֆեյսերի ընդլայնում

Java դասը կարող է ընդլայնել միայն մեկ parent class: Բազմակի ժառանգությունը (Multiple inheritance) չի թույլատրվում: Ինտերֆեյսները դասեր չեն, սակայն ինտերֆեյսը կարող է ընդլայնել ավելի քան մեկ parent interface։

extends բանալի բառերն օգտագործվում է մեկ անգամ, և parent interfaces-ները հայտարարվում են ստորակետով տարանջատված ցուցակում:

Օրինակ, եթե Հոկեյի ինտերֆեյսը ընդլայնում է և Sports-ը, և Event-ը, ապա այն պետք է հայտարարտվի հետևյալ ձևով։

Օրինակ՝

public interface Hockey extends Sports, Event

 

Ինտերֆեյսի թեգեր

Ընդլայնված ինտերֆեյսի ամենատարածված օգտագործումը տեղի է ունենում, երբ  parent interface-ը չի պարունակում որևէ մեթոդ: Օրինակ, MouseListener ինտերֆեյսը java.awt.event փաթեթում ընդլայնվել է java.util.EventListener, որը սահմանվում է որպես –

Օրինակ

package java.util;

public interface EventListener

{}

 

Առանց մեթոդների ինտերֆեյսը հայտնի է որպես tagging interface: Գոյություն ունի tagging interface-ի երկու հիմնական նախագիծ`

 

common parent Ստեղծում է ընդհանուր ծնող, ինչպես EventListener ինտերֆեյսը, որը ընդլայնվում է տասնյակ այլ ինտերֆեյսներով Java API-ում, դուք կարող եք օգտագործել tagging interface մի խումբ ինտերֆեյսների միջև միասնական ծնող ստեղծելու համար: Օրինակ, երբ ինտերֆեյսը ընդլայնվում է EventListener-ը, JVM-ին հայտնի է, որ տվյալ ինտերֆեյսը պատրաստվում է օգտագործվել event-ում։

Ավելացնում է տվյալների տեսակ դասին –  Հենց այս իրավիճակից առաջանում է tagging տերմինը։ Դասը, որը իրականացնում է tagging ինտերֆեյսը, կարիք չունի սահմանել որևէ մեթոդ (քանի որ ինտերֆեյսը չունի ոչ մի մեթոդ), սակայն դասը դառնում է ինտերֆեյսի տեսակի պոլիմորֆիզմի միջոցով:

Հարգելի ընթերցող, խնդրում ենք չմոռանալ like տալ մեր ֆեյսբուքյան էջին, քանի որ նորությունների մեծ մասը առաջինը տեղադրվում է հենց այնտեղ։ Ինչպես նաև հետևեք մեզ այլ սոցիալական ցանցերում և, իհարկե, գրանցվեք մեր բլոգում։

Share.