本章节讲述Kotlin中接口的使用详解。
一.定义接口 interface MyInterface { /** * 接口未实现的方法 * */ fun method() /** * 接口未实现的方法 * */ fun methodString(string: String): String /** * 接口已经实现的方法 * */ fun methodInt(int: Int): Int { return int + 1 }}
可见,Kotlin中,接口中既可以包含未实现的方法,也可以包含普通的方法。而且定义的普通方法不需要特殊的关键字修饰。这一点和Java是有区别的。
Java中,接口中如果想要定义普通的方法需要使用关键字default。详情
https://blog.csdn.net/weixin_37730482/article/details/72528519
二.接口使用
1.Java
Java中一个类要实现一个接口,需要使用implements关键字。举例
public class TreeNode implements INetwork如果这个类同时还继承类,那么还是使用implements关键字在继承的类后面即可。举例
public class MainActivity extends AppCompatActivity implements INetwork
Kotlin
因为Kotlin中继承类使用 :+类名()。实现接口使用:+接口名。所以
类只实现一个接口
class People :MyInterface
类即继承类又实现接口
class KotlinActivity4 : AppCompatActivity(), MyInterface即 和Java中实现多个接口一样,继承的类和实现的接口使用 , 分割开。
Activity完整代码
class KotlinActivity4 : AppCompatActivity(), MyInterface { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_kotlin4) } /** * 接口未实现的方法 一定要重写 * */ override fun method() { TODO("Not yet implemented") } /** * 接口未实现的方法 一定要重写 * */ override fun methodString(string: String): String { TODO("Not yet implemented") } /** * 接口已经实现的方法即普通方法 可重写也可不重写 * */ override fun methodInt(int: Int): Int { return super.methodInt(int) }}