Реализация java.util.ArrayList реализует List а также расширяет AbstractList. Но в java-документах вы можете видеть, что AbstractList уже реализует List. Тогда не было бы лишним реализовать List, а также расширить AbstractList?
Мой второй вопрос
Пожалуйста, ознакомьтесь со следующим кодом:
String str = "1,2,3,4,5,6,7,8,9,10";
String[] stra = str.split(",");
List<String> a = Arrays.asList(stra);
Метод Arrays.asList() класса Arrays содержит собственную реализацию ArrayList. Но это только расширяет AbstractList, но не реализует List. Но приведенный выше код компилируется.
НО, когда код изменен на следующий
String str = "1,2,3,4,5,6,7,8,9,10";
String[] stra = str.split(",");
java.util.ArrayList<String> a = Arrays.asList(stra);
Я получаю сообщение об ошибке: cannot convert form List<String> to ArrayList<String>
В чем причина этого?
РЕДАКТИРОВАТЬ Arrays.asList() возвращает свою собственную реализацию ArrayList. Проверьте это.