Gyakorlati alapok III.
A névtelen osztály interfésszel
A névtelen osztály előző fejezetben említett zavaros meghatározása talán ebben a fejezetben tisztulhat ki kissé, hiszen névtelen osztály létrehozható interfészből is, amely aztán tényleg fából vaskarika, hiszen interfész alapjában véve nem példányosítható. Az ilyen módon létrejövő objektum őse tehát a megadott interfész, de nem "klasszikus" osztály-tulajdonságokkal rendelkező objektum, mert nincs, nem is lehet konstruktora, hiszen neve (objektumreferenciája) sincs, ezért a példány inicializálását az objektum létrehozásának blokkjában kell megtennünk. A keletkezett objektum osztályőse az Object osztály. Erről könnyen megbizonyosodhatunk, ha belekotorászunk az objektum elérhető metódusaiba: lényegében azok az Object osztály belső metódusai + az interfészben definiált saját metódusfejek (amelyeket kötelező jelleggel inicializáláskor kell kidolgoznunk). Vegyük észre, hogy bár interfészről van szó, mégsem használtuk fel az implements szót!
Nézzük meg a futtatható Java-kódot:
import java.util.*;
interface ITerhelhetőségiSzint{
public String terheles();
}
public class Main{
public static void main(String[] args){
Vector munkavallalo = new Vector();
munkavallalo.add(new ITerhelhetőségiSzint(){
public String terheles(){
return
"Terhelhető";
}
});
munkavallalo.add(new ITerhelhetőségiSzint(){
public String terheles(){
return
"Túlterhelhető";
}
});
munkavallalo.add(new ITerhelhetőségiSzint(){
public String terheles(){
return "Nem
terhelhető";
}
});
for(int i = 0; i < munkavallalo.size(); i++){
ITerhelhetőségiSzint itsz = (ITerhelhetőségiSzint)munkavallalo.get(i);
System.out.println(itsz.terheles());
}
}
}
Végeredmény:
Terhelhető
Túlterhelhető
Nem terhelhető