借助sealed interface 我们可以给抽出 interface,并将 enum 进行层级拆分。更加清晰、亦不用担心重名。 sealed interface Actionenum class GameAction : Action {Start, Exit, Restart}enum class BirdAction : Action {Up, Down, HitGround, HitPipe, CrossedPipe}enum class PipeAction : Action {Move, Reset}en...
fun wbProject() } 1. 2. 3. 4. 5. 6. 说明:在 Kotlin 中定义接口,依然使用 interface 关键字。 代理人定义 /** *将 ProgrammerTwo 修改为始终单实例 * * 需要将类 ProgrammerTwo 的 class 替换为 object 修饰符 * */ class ProgrammerOne : GetMoneyFromProject by ProgrammerTwo { override fun wb...
class 类名: 接口名{ // 重写的接口函数、属性等 ... } 2.1.3、举例说明 fun main(args: Array<String>) { // 类的初始化 var demo = Demo1() demo.fun1() } /** * 我定义的接口 */ interface Demo1Interface{ // 定义的方法 fun fun1() } /** * 接口的实现类 */ class Demo1 : ...
interface InterfaceB { fun doSomething() { println("Doing something in InterfaceB") } } class MyClass : InterfaceA, InterfaceB { override fun doSomething() { super<InterfaceA>.doSomething() // 明确调用 InterfaceA 的实现 super<InterfaceB>.doSomething() // 明确调用 InterfaceB 的实现 } }...
在任何一门面向对象编程的语言里,类(class)是非常基础、但也是非常重要的一项组成,通俗的说就是万般皆对象,而所说的对象就是我们生成的类。Kotlin也是如此,下面详细为大家介绍Kotlin中的类的组成结构、函数、声明等。 目录 一、类的声明 1、关键字 声明类的关键字为class ...
aFun() c.bFun() } interface A { var x: String fun aFun() } interface B { var y: String fun bFun() } class C(override var x: String, override var y: String) : A, B { override fun aFun() { println("aFun, x=$x") } override fun bFun() { println("bFun, y=$y"...
interfacePerson{// 提供了 name 属性 默认的 getter 实现val name:Stringget()="Tom"varage:Int// 该函数也提供了默认的实现funsayHello(){println("Person sayHello :")}}classStudent:Person{overridevarname:String="Tom"get()=super.nameset(_name:String){field=_name}overridevarage:Int=18override fun...
sealed class 以及 1.5 里新增的 sealed interface 可谓是 Kotlin 语言的一大特色,其在类型判断、扩展和实现的限制场景里非常好用。 本文将从特点、场景和原理等角度综合分析 sealed 语法。 Sealed Class Sealed Interface Sealed Class & Interface VS Enum ...
Kotlin接口定义依旧使用interface interface Animal { fun say() } class Dog : Animal { override fun say() { println("汪汪...") } } 1. Kotlin使用冒号来替代Java中的extend,implements 2. Kotlin中override关键字是强制要求的,不能省略 Java中的接口允许拥有默认实现,Kotlin中也是同样支持的 interface An...
interfaceMyInterface{funbar()//未实现funfoo(){//已实现//可选的方法体println("foo")}} 实现接口 一个类或者对象可以实现一个或多个接口。 classChild:MyInterface{overridefunbar(){//方法体}} 实例 interfaceMyInterface{funbar()funfoo(){//可选的方法体println("foo")}}classChild:MyInterface{overr...