Это законно, но бесполезно. Все расширяет Object, поэтому языковая спецификация позволяет вам его опускать, и, как правило, его следует исключать (некоторые авторы стандартов кодирования не согласны).
Ситуация та же в универсальных (расширяет Object неявным и избыточным), просто по какой-то причине (я видел некоторые утверждения, что в ранних реализациях Generics были проблемы с подстановочным знаком?), Он получил немного больше есть.