Изучите ковариантность и контрвариативность типов.
А также Liskov Substitution Principle из SOLID — объяснит мотивацию такого написания.
Должно стать понятнее.
Пример:
Когда вы говорите, что во дворе стоит авто (Тип переменной), полученная (оператор присваивания) покупкой Nissan Quashkai, то выражение верно логически по соблюдению типов.
Наоборот — нет, тк при покупке машины во дворе не появится Quashkai гарантированно :)
Иными словами ArrayList является также Collection и потому все переменные этого типа являются корректными коллекциями,
Также как все Ниссан кашкаи являются корректными автомобилями