Java - Collections senza implementazione metodi Abstract

BoG3
Ciao a tutti, ho un dubbio: Il mi oprof, come esercizio ha dato un codice e ha chiesto di trovare l'errore.

  import java.util.*;
  class A {
    A(int m){
        Collection  b = new Collection();
        for(int k=0; k<10; k++){
            String s = "w"+(k%m);
            b.add(s);
        }
        int count = 0;
        Iterator i = b.iterator();
        while(i.hasNext()){
            Object s = i.next();
            System.out.println(s);
        }        
    }
    public static void main(String[] args) {
        new A(3);
    }    
    public static void main(String args) {
        new A(1);
    }    
}


Qua secondo me l'errore è che non ha implementato i metodi Abstract di Collection e quindi, se provo a compilare, il compilatore mi dara' questo errore!

Giusto?

Risposte
BoG3
Scusate ragazzi, mi sa che ho sbagliato codice.
Il codice corretto è questo:

import java.util.*;
public class A {
A(){
  Collection b = new Collection();
  for(int k=0; k<10; k++){
  String s = "w"+(k%4);
  b.add(s);
  }
   int count = 0;
   Iterator i = b.iterator();
   while(i.hasNext()){
   Object s = i.next();
   count++;
  }
  System.out.println(count);
}
public static void main(String[] a) {
  new A();
  new A();
}
public static void main(String a) {
  new A();
}
}

onlyReferee
Ciao BoG :!:
Trattandosi di Collections, da come ricordo, di una classe astratta oltre a dover implementare i metodi astratti della stessa bisogna anche definire una classe che estenda Collection in maniera apposita dove inserirli. Anche secondo me l'errore è questo.

BoG3
si, infatti... non si possono istanziare classi abstract, come la collection, appunto ! grazie

burm87
Collection se non sbaglio è un'interfaccia, ma non cambia il succo, non si può istanziare.

sapo931
"burm87":
Collection se non sbaglio è un'interfaccia, ma non cambia il succo, non si può istanziare.


ti dico un segreto, in realtà le interfacce sono delle classi (astratte con ulteriori limitazioni) 8-)

onlyReferee
Per essere precisi le interfacce si implementano e le sottoclassi si istanziano.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.