Для успешного приведения, должен быть некоторый возможный реализатор обоих аргументов.Возьмем, к примеру, следующие мнимые объявления классов:
<code>
5: class ComparableArrayList extends ArrayList implements Comparable
7: class NumberList extends Number implements List
8: class ComparableList implements Comparable, List
Экземпляр каждого из них позволит выполнить приведение успешно.В пункте 4 для того, чтобы приведение к работе, вам понадобится
<code>
class NumberArrayList extends ArrayList, Number
, а Java не разрешает множественное наследование.
РЕДАКТИРОВАТЬ для отредактированного вопроса:
В пункте 1 не существует возможных отношений между классами, потому что вы не можете иметь класс, расширяющий как ArrayList, так и Number.В пунктах 2 и 3 можно создать отношение, создав новый класс, расширяющий ArrayList и реализующий AdjustmentListener.Затем установите a1 для экземпляра этого класса.