kotlin语法快速入门-接口与接口实现(8)

kotlin语法快速入门-接口与接口实现(8)

文章目录

八、接口与接口实现

1、接口定义与实现

在kotlin中语法与Java语法差不多,唯一区别就是没有使用implement关键字,用冒号,像继承一样。多个接口继承用逗号隔开。下面是接口定义与接口实现的一个例子:

kotlin 复制代码
class AParent() : A, B {  //接口实现

}

interface A {   //接口A

}

interface B {   //接口B

}

2、接口成员变量

2.1、单个接口函数复写
kotlin 复制代码
class AParent() : A{  //接口实现
    override fun print() {
        super.print()
    }
}

interface A {   //接口A
    fun print(){}
}

注意:当接口A函数中的print()方法存在方法体{}的时候,默认是可以不重写。没有方法体的时候强制重写,这点个Java一样。

2.2、多个接口同名函数复写

当多个接口具有同名函数的时候,需要使用super<A>指定复写的是哪一个接口中的函数:

kotlin 复制代码
class AParent() : A, B {  //接口实现
    override fun print() {
        super<A>.print() //指定父类A的print方法
        super<B>.print() //指定父类B的print方法
    }
}

interface A {   //接口A
    fun print() {}
}

interface B {   //接口A
    fun print() {}
}
2.2、接口成员存在变量和常量

变量重写,其实就是重新其get和set方法:

kotlin 复制代码
class AParent() : A {  //接口实现
    override var name: String
        get() = TODO("Not yet implemented")
        set(value) {}
}

interface A {   //接口A
   var name: String
}

常量重写,其实就是重新其get方法:

kotlin 复制代码
class AParent() : A {  //接口实现
    override val name: String
        get() = TODO("Not yet implemented")
}

interface A {   //接口A
   val name: String
}

也可以将复写的变量写在类的()里面:

kotlin 复制代码
class AParent(override var name: String) : A {  //接口实现
}

interface A {   //接口A
    var name: String
}
相关推荐
懒大王95278 分钟前
uni-app + Vue3 + EZUIKit.js 播放视频流
开发语言·javascript·uni-app
_extraordinary_11 分钟前
Java 多线程进阶(四)-- 锁策略,CAS,synchronized的原理,JUC当中常见的类
java·开发语言
JasmineX-127 分钟前
数据结构——顺序表(c语言笔记)
c语言·开发语言·数据结构·笔记
雨白35 分钟前
Android 两种拖拽 API 详解:ViewDragHelper 和 OnDragListener 的原理与区别
android
元亓亓亓38 分钟前
JavaWeb--day3--Ajax&Element&路由&打包部署
android·ajax·okhttp
居然是阿宋44 分钟前
Android XML属性与Jetpack Compose的对应关系(控件基础属性篇)
android
java搬砖工-苤-初心不变1 小时前
OpenResty 配合 Lua 脚本的使用
开发语言·lua·openresty
IT灰猫1 小时前
C++轻量级配置管理器升级版
开发语言·c++·设计模式·配置管理·ini解析
GoatJun1 小时前
Android ScrollView嵌套RecyclerView 导致RecyclerView数据展示不全问题
android
Swift社区1 小时前
如何解决 Vue2 前端项目为何无法访问本地资源(chunk.js 加载一直 pending/转圈)
开发语言·前端·javascript