Kotlin基础 类:构造函数 继承 抽象类(三)

本文详细介绍了Kotlin中的类定义,包括类的声明、构造函数(主构造函数和二级构造函数)、类成员如函数和属性。此外,还探讨了继承的概念,包括如何指定基类、复写属性和方法的规则,以及抽象类和抽象方法的使用。最后,提到了密封类这一特性,允许创建有限的类结构集合。
摘要由CSDN通过智能技术生成

在 Kotlin 中类用 class 时:
class Invoice {
}
类的声明包含类名,类头(指定类型参数,主构造函数等等),
以及类主体,用大括号包裹。类头和类体是可选的;如果没有类体可以省略大括号。
class Empty

构造函数

在 Kotlin 中类可以有一个主构造函数以及多个二级构造函数。

主构造函数是类头的一部分:跟在类名后面(可以有可选的类型参数)class Person constructor(firstName: String) {
   
}
如果主构造函数没有注解或可见性说明,则 constructor 关键字是可以省略:
class Person(firstName: String){
   
}
主构造函数不能包含任意代码。初始化代码可以放在以 init 做前缀的初始化块内
class Customer(name: String) {
   
    init {
   
        logger,info("Customer initialized with value ${
     name}")
    }
}
注意主构造函数的参数可以用在初始化块内,也可以用在类的属性初始化声明处:
class Customer(name: String) {
   
    val customerKry = name.toUpperCase()
}
事实上,声明属性并在主构造函数中初始化,在 Kotlin 中有更简单的语法:
class Person(val firstName: String, val lastName: String, var age: Int) {
   
}
就像普通的属性,在主构造函数中的属性可以是可变的(var)或只读的(val)。
如果构造函数有注解或可见性声明,则 constructor 关键字是不可少的,并且可见性应该在前:
class Customer public @inject constructor (name: String) {
   ...}

二级构造函数
类也可以有二级构造函数,需要加前缀 constructor:

class Person {
   
    constructor(parent: Person) {
   
        parent.children.add(this)
    }
}

如果类有主构造函数,每个二级构造函数都要,或直接或间接通过另一个二级构造函数代理主构造函数.
在同一个类中代理另一个构造函数使用 this 关键字:
class Person(val name
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值