В чем разница между классом с сопутствующим объектом и классом с одинаковым именем?

Сопутствующий объект класса Scala. может рассматриваться как одноэлементный объект с тем же полностью определенным именем, что и класс (то есть то же имя в том же пакете). Они используются для хранения служебных функций, общих для всех экземпляров класса, в качестве замены для Java.static методы.

Однако в разных местах в документах и в вопросах говорится, что сопутствующие объекты должны быть определены в одной и той же единице компиляции. Например, они должны быть определены в одном файле;сопутствующие объекты не могут быть определены для объектов Java; в REPL они должны быть определены в одной строке вводаотсюда и предупреждающее сообщение:

warning: previously defined class Foo is not a companion to object Foo.
Companions must be defined together; you may wish to use :paste mode for this.

Это подразумевает, что должно быть различие между классом с его сопутствующим объектом и просто классом и объектом с тем же (полностью определенным) именем. Что это за различие?

Ответы на вопрос(1)

Ваш ответ на вопрос