Чтобы расширить сказанное Тангенсом:
Для номера 2 вместо этого следует читать:
Каждый класс, который явно не
объявить класс, который расширяет расширяет
Объект
т.е. если вы используете ключевое слово extends, вы теперь говорите, что явно расширяете что-то, кроме Object. Однако, в какой-то момент, этот путь расширения в конечном итоге снова окажется в Object, если вы будете следовать иерархии расширений.
Другая часть этого заключается в том, что наследование действительно представляет собой цепочку - у вас есть все свойства вашего родителя и их родителя, а также родителя их родителя и т. Д. Поскольку вершиной этой иерархии всегда является Object, вы должны на одном уровне или другой, расширить Object.