Kotlin中级- - - Kotlin类之接口枚举.md
Posted Hankkin_Coding
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin中级- - - Kotlin类之接口枚举.md相关的知识,希望对你有一定的参考价值。
一、接口
在Kotlin中,一个类只能继承一个普通类或者抽象类。通过接口我们可以进行多实现
interface
interface Demo
- 关键字:冒号(?,这一点是和Java不同的。Java中使用接口使用的是implements关键字
- 在Kotlin中冒号(:)使用的地方很多:
1.用于变量的定义
2.用于继承
3.用于接口
4.方法的返回类型声明
接口冲突
例如:
interface Apple
fun printSelf()
fun give() = print('')
interface Banana
fun printSelf() = println("")
fun give = print("")
class Person : Apple,Banana
override fun printSelf()
override fun give()
super<Apple>.give()
super<Banana>.give()
在这里,大家应该看到了Apple和Banana这两个接口都声明了give方法,实现了这两个接口的Person类,在实现give方法时使用super<接口或超类的名称>.方法
二、枚举类
枚举类中的每一个枚举常量都是一个对象,并且他们之间用逗号分隔。
例如:
/**
* 例:关于一个网络请求结果的枚举类
*/
enum class State
/*
NORMAL : 正常
NO_DATA : 数据为空
NO_INTERNET : 网络未连接
ERROR : 错误
OTHER : 其他
*/
NORMAL,NO_DATA,NO_INTERNET,ERROR,OTHER
枚举常量的匿名类
- 要实现枚举常量的匿名类,则必须提供一个抽象方法,且该方法定义在枚举类内部,而且必须是在枚举类变量的后面
- 枚举变量之间使用逗号(,)分割开。但是最后一个枚举变量必须使用分号结束。不然定义不了抽象方法。
- 每一个枚举常量就是一个对象
fun main(args: Array<String>)
ConsoleColor.BLACK.print()
enum class ConsoleColor(var argb : Int)
RED(0xFF0000)
override fun print()
println("我是枚举常量 RED ")
,
WHITE(0xFFFFFF)
override fun print()
println("我是枚举常量 WHITE ")
,
BLACK(0x000000)
override fun print()
println("我是枚举常量 BLACK ")
,
GREEN(0x00FF00)
override fun print()
println("我是枚举常量 GREEN ")
;
abstract fun print()
枚举类的使用
- 每个枚举常量都包含两个属性:name(枚举常量名)和ordinal(枚举常量位置)
- 提供了values()和valueOf()方法来检测指定的名称与枚举类中定义的任何枚举常量是否匹配
- 自 Kotlin 1.1起,可以使用 enumValues()和 enumValueOf()函数以泛型的方式访问枚举类中的常量。
以上是关于Kotlin中级- - - Kotlin类之接口枚举.md的主要内容,如果未能解决你的问题,请参考以下文章
Kotlin中级- - - Kotlin类之数据类密封类内部类.md
Kotlin中级- - - Kotlin类之数据类密封类内部类.md