Думайте в терминах иерархии наследования .
Если вы поднимаетесь по иерархии, самый верхний класс (Dog
) в иерархии по умолчанию расширяет Object
.
И подкласс всегда наследует все наследуемые члены своего суперкласса, даже если они в свою очередь наследуются суперклассом от другого своего собственного суперкласса.
Итак, хотя Puppy
не расширяет Object
напрямую, он наследует членов Object
через эту иерархию.