时间:2021-05-20
Kotlin 基础教程之类、对象、接口
Kotlin中类、接口相关概念与Java一样,包括类名、属性、方法、继承等,如下示例:
interface A { fun bar() fun foo() { // 可选方法体 }}class Child: A { override fun bar() { // todo } override fun foo() { super.foo() }}class
构造器
Kotlin 中的类可以有一个 主构造器, 以及一个或多个次构造器, 主构造器是类头部的一部分, 位于类名称之后。
如果主构造器没有任何注解(annotation), 也没有任何可见度修饰符, 那么 constructor 关键字可以省略
主构造器中不能包含任何代码. 初始化代码可以放在初始化代码段 (initializer block) 中
class Persion(name: String) { private val firstName: String = name private var age: Int init { age = 10 }}Kotlin 有一种简洁语法, 可以通过主构造器来定义属性并初始化属性值:
如果构造器有注解, 或者有可见度修饰符, 这时 constructor 关键字是必须的, 注解和修饰符要放在它之前
类还可以声明次级构造器 (secondary constructor)。如果类有主构造器, 那么次级构造器都必须委托给主构造器
class Persion(val name: String) { constructor(name: String, age: Int): this(name) { // todo }}类实例化
Kotlin 没有 new 关键字
val persion = Persion("jason")继承
Kotlin的继承概念和Java一样,”类名: 超类“ 冒号表示继承。
与Java的Object相对,Kotlin也有一个这样的Any类,类默认继承Any。
与Java的final相反,Kotlin类默认是final的,允许被继承的类,需要加 open 修饰。
open class Base { open fun v() {...} fun nv() {...} // can't be override}方法和属性的覆盖
方法的覆盖和Java类似,但是只有 open 的方法才能 override, final 类是不允许定义 open方法。
class Other: Base() { override fun v() {...}}可以加final禁止ovrride, final override fun v() {...}
与方法的覆盖类似, Kotlin提供了属性的覆盖,例如
open class Foo { open val x: Int = 0}class Bar(override val x: Int): Foo {...}class Bar1: Foo() { override var x: Int = 0 // override to var}抽象类
类本身, 或类中的部分成员, 都可以声明为 abstract 的, 抽象类不必标识 open。
abstract class Base { abstract fun v()}同伴对象
Kotlin 的类没有静态方法, 大多数情况下, 建议使用包级函数(packagelevel function)替代, 或者使用同伴对象,
达到静态方法效果
interface
Kotlin 的接口和Java差不多,但是接口的属性不一样,Kotlin接口中的属性是抽象的。
interface A { val x: Int}class B: A { override val x: Int = 10}object
Kotlin 没有静态类, 可以用object实现静态类的效果。
object B { fun foo() { // do something }}class A { fun bar() { B.foo() }}感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
kotlin基础教程之类和继承类声明使用class关键字声明类,查看其声明格式::modifiers("class"|"interface")SimpleNam
Kotlin基础教程之数组容器ArraysKotlin标准库提供了arrayOf()创建数组,**ArrayOf创建特定类型数组valarray=arrayOf
Kotlin基础教程之操作符与操作符重载Kotlin操作符的使用方法与其他语言差不多,最大的特点就在于infixfunctioncall(事实上infixfun
Kotlin基础教程之反射概述反射是语言与库中的一组功能,可以在运行时刻获取程序本身的信息.在Kotlin中,不仅可以通过发射获取类的信息,同时可以获取函数和属
基础教程介绍了基本概念,特别是对象和类。进阶教程对基础教程的进一步拓展,说明Python的细节。希望在进阶教程之后,你对Python有一个更全面的认识。之前我们