Java - Collections senza implementazione metodi Abstract
Ciao a tutti, ho un dubbio: Il mi oprof, come esercizio ha dato un codice e ha chiesto di trovare l'errore.
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?
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
Scusate ragazzi, mi sa che ho sbagliato codice.
Il codice corretto è questo:
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(); } }
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.

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.
si, infatti... non si possono istanziare classi abstract, come la collection, appunto ! grazie
Collection se non sbaglio è un'interfaccia, ma non cambia il succo, non si può istanziare.
"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)

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