Nur für den Fall, dass diese Frage noch jemandem im Kopf herumschwirrt. Weil, ich sehe ein oder zwei neue Benutzer wieder die gleiche Frage stellen und jeder sagt dann, Nein, das kannst du nicht tun, liebe Prudence Abgesehen von den Antworten, die hier gegeben wurden, möchte ich zusätzliche Informationen geben - Ja, das können Sie tatsächlich tun, Liste list = new List(); Allerdings um den Preis, dass man Implementierungen für alle Methoden der Schnittstellen schreiben muss. Das Konzept ist nicht einfach List list = new List(); sondern
List<Integer> list = new List<Integer>(){
@Override
public int size() {
// TODO Auto-generated method stub
return 0;
}
@Override
public boolean isEmpty() {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean contains(Object o) {
// TODO Auto-generated method stub
return false;
}
..... und so weiter (Kann nicht alle Methoden schreiben.)
Dies ist ein Beispiel für Anonyme Klasse . Es ist richtig, wenn jemand sagt, Nein, Sie können eine Schnittstelle nicht instanziieren, und das ist richtig. Aber man kann nie sagen, Sie können nicht schreiben List list = new List(); aber offensichtlich können Sie das tun, und das ist eine schwierige Aussage die Sie nicht tun können .