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:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

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ő