Почему ObjectOutputStream.writeObject(Object o); но не ObjectOutputStream.writeObject(Serializable o)

В Java мы используем метод writeObject(Object obj) ObjectOutputStream для сериализации Object.

Но так как метод принимает объект, реализующий интерфейс java.io.Serializable (или он бросает NotSerializableException), почему он все еще использует параметр Object, а не Serializable, например writeObject(Serializable o)?

Есть ли какие-либо соображения по проектированию?