- 在Kotlin中,接口跟Java类似。但是它可以包含默认的实现和属性。
- 所有的声明默认都是
final
和public
。 - 为了让一个声明不是
final
,把它标记为open
。 internal
声明在同一个模块内是可见的。- 嵌套类默认不是内部的。使用关键字
inner
来为一个外部类保存(它的)一个引用。 sealed
类的子类只能嵌套在它的声明内部。- 初始化块和次构造函数为初始化类实例提供了灵活性。
- 使用
field
标记符来引用一个主体访问器的属性支持字段。 - 数据类提供了编译器生成的
equals(), hashCode(), toString(), copy(),
和其他方法。 - 类委托帮你避免了代码中的许多委托方法。
- 对象委托是Kotlin定义一个单例类的方式。
- 伴生对象替代了Java的静态方法和字段定义。
- 伴生对象,跟其他对象一样,可以实现接口或者拥有扩展函数或属性。
- 对象表达式是Kotlin提供的Java匿名内部类的替代品。它增加了有效率的东西,比如实现多个接口的能力以及修改定义在对象创建的地方变量。