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.