Kotlin类、抽象类、接口、继承类和实现接口、可空类型基础

本文介绍了Kotlin中的类、抽象类和接口的基础概念,探讨了类的继承和接口的实现。此外,还详细讲解了Kotlin特有的可空类型,包括如何使用安全访问操作符和非空断言来处理可能为null的值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Kotlin中类的成员变量称为Property,如果是用var修饰,那么它相当于Java语言中的类成员属性Field+get()+set()。如果是val修饰,那么就是Field+get()

// 类的定义
// 1.可见性默认为public,类内无内容可省略{}
class A   // 这是一个类
// 2.类内成员必须初始化
class B{
	var x = 100
}
// 3.构造器constructor
// Kotlin构造器可以有0或1个主构造器和0或n个副构造器。Kotlin类
// 至少有一个构造器,如果没声明构造器,那么就有默认的一个主构造器。
// 例子1:构造器写在类的内部时作为副构造器
class C{
	constructor(x: Int){
	}
}
// 例子2:构造器可以直接写在类名后,此时构造器是主构造器
class D constructor(x: Int)
// 此时可以直接省略constructor
class E(x: Int)
// 例子3:构造器上参数列表中的参数添加var或val修饰,相当于直接在类的内部声明了该成员
class F(var x: Int)
// 这个与上面的等价
// class F(x: Int){
// 	var x = x
// }

// 例子4:如果存在主构造器和副构造器,主构造器要求其它的构造器必须直接或者间接调用它
class G(x:Int){
	constructor(x: Int, y: String):this(x) {
    }
}

// 类的实例化
// 与Java类似,只不过没有new

抽象类

// 在class前加abstract即可
abstract class A{
	// 抽象函数
	abstract fun a()
	
	// 普通函数:Java中普通方法默认可以覆写,在Kotlin中的普通函数
	// 默认是 final 的,如果想要覆写,必须加上 open 关键字
	
	// 无法覆写的函数
	fun b(){}
	// 可以覆写的函数
	open fun c(){}
}

接口

// 与Java中类似
interface A{
	fun a()
}

类的继承和接口的实现

// 在Java中,类的继承通过extends,接口的实现通过implements
// 在Kotlin中,都是通过:来进行继承类与实现接口的操作

// 接口实现
// 例子:
// 接口
interface A{
	fun a()
}
// 类
class B: A{
	// 覆写函数时必须加override关键字
	override fun a(){}
}

// 类的继承
// 例子1:继承抽象类
abstract class C {
	// 抽象函数
    abstract fun c()
    // 可以被覆写的函数
    open fun d() {}
    // 不可以覆写的函数
    fun e() {}
}
// D继承抽象类C
class D : C() {
	// 覆写抽象函数
    override fun c() {
    }
	// 覆写用open修饰的普通函数
    override fun d() {
        super.d()
    }
}
// 例子2:继承普通类
// 这是一个普通的类,如果要被继承,必须用 open 关键字修饰类
open class E {
    open fun e() {}
    fun f() {}
}

class F : E() {
    override fun e() {
        super.e()
    }
}

// 例子3:A继承了一个类B,这个类B也继承了一个类C,并且C中有一个
// 函数可以重写,如果B不想A重写,可以添加 final
open class C {
    open fun c() {}
}

open class B : C() {
    final override fun c() {
        super.c()
    }
}

class A : B() {
// 无法覆写,除非B类中对函数c取消final修饰
//    override fun c() {
//        super.c()
//    }
}

可空类型

Kotlin相比Java多了个可空类型,在Kotlin中,可空类型用?来表示,比如说var string: String? = null表示string可以为null。如果想要获取string的长度,由于string是可空的,所以可以使用安全访问:在变量名后加?来访问:val length = string?.length;如果可以确定该变量非空,也可以使用非空断言!!将可空变量强转为非空类型来访问:val length = string!!.length。不可将可空类型的值赋值给非空类型的变量,反之是可行的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值