包对象最重要的用途是兼容旧的类库,或者为某些数据类型提供增强版本,类似于java的静态属性和方法。
Scala编译器会在scala包下创建一个叫package的类,这个类里面的内容就是package object scala中的东西
有了包对象这个新特性,不但解决了新旧版本的兼容性问题,还可以对旧的类库或第三方接口做一些包装或改进,而不需要额外创建一些类或接口(虽然实际上还是创建了一个类package,但这是编译器帮我们完成的)。
实际上可以理解为优先解析伴生对象里的内容,再去取本包下的其余对象内容。同名取前者。