1.1接口
kotlin中使用interface关键字而不是class来声明一个kotlin的接口。
kotlin在类的后面使用冒号来代替Java中的extends 和 implement 关键字
和Java一样override用来标注复写父类的接口的方法和属性,在kotlin中是强制要求的。
![](https://i-blog.csdnimg.cn/blog_migrate/e6abb5b8e43479d046e4dafe3f9f0944.webp?x-image-process=image/format,png)
1.2修饰符
默认为public 可见。kotlin中有public、protected和private 修饰符。一个新的修饰符internal,表示只在模块内部可见。一个模块就是一个eclipse 项目、一个maven项目或 Gradle项目
inner:Kotlin没有显式的修饰符的嵌套类于Java中static嵌套类是一样的。要把它变成一个内部类持有一个外部类的话需要使用inner。
sealed:父类添加一个sealed修饰符,对可能创建的子类做出严格的限制,所有的直接子类必须嵌套在父类中。
1.3构造方法和属性类
constructor:这个关键字用来开始一个主构造方法或从构造方法的声明。
init:用来引入一个初始化代码块,它于主构造方法一起使用。主构造方法有语法限制,不能包含初始化代码,所有要使用init代码块。
1.4 通用对象方法
toString(),equals(),hashCode(),
is 和 Java中的instanceof 一样
by: 类委托
1.5 Object关键字
Object将一个类与创建一个实类结合起来。与类一样对象声明包含属性、方法、初始化等语句,但是不允许构造方法。与实类不同对象声明在定义的时候就立即创建了。所有不需要构造方法。
伴生对象:工厂方法和静态成员。
companion:获得直接通过容器类名称访问这个对象的方法和属性的能力,不再需要显示地指明对象的名称。
伴生对象替代了Java静态方法和字段定义
伴生对象和其他对象一样可以实现接口,也可拥有扩展函数和属性。
对象表达式是kotlin针对Java中匿名内部类的替代品,并增加了诸多实现对个接口的能力和修改对象的作用域中定义的变量