📅  最后修改于: 2020-12-30 07:03:17             🧑  作者: Mango
在本章中,我们将学习Kotlin中的界面。在Kotlin中,该接口的工作方式与Java 8完全相似,这意味着它们可以包含方法实现以及抽象方法声明。接口可以由类实现,以使用其定义的功能。在第6章-“匿名内部类”部分中,我们已经介绍了带有接口的示例。在本章中,我们将学习更多有关它的内容。关键字“ interface”用于在Kotlin中定义接口,如以下代码所示。
interface ExampleInterface {
var myVar: String // abstract property
fun absMethod() // abstract method
fun sayHello() = "Hello there" // method with default implementation
}
在上面的示例中,我们创建了一个名为“ ExampleInterface”的接口,在该接口中,我们具有一对抽象属性和方法。查看名为“ sayHello()”的函数,这是一个已实现的方法。
在下面的示例中,我们将在一个类中实现上述接口。
interface ExampleInterface {
var myVar: Int // abstract property
fun absMethod():String // abstract method
fun hello() {
println("Hello there, Welcome to TutorialsPoint.Com!")
}
}
class InterfaceImp : ExampleInterface {
override var myVar: Int = 25
override fun absMethod() = "Happy Learning "
}
fun main(args: Array) {
val obj = InterfaceImp()
println("My Variable Value is = ${obj.myVar}")
print("Calling hello(): ")
obj.hello()
print("Message from the Website-- ")
println(obj.absMethod())
}
上面的代码将在浏览器中产生以下输出。
My Variable Value is = 25
Calling hello(): Hello there, Welcome to TutorialsPoint.Com!
Message from the Website-- Happy Learning
如前所述,Kotlin不支持多重继承,但是,可以通过一次实现两个以上的接口来实现同一目的。
在下面的示例中,我们将创建两个接口,然后再将这两个接口实现为一个类。
interface A {
fun printMe() {
println(" method of interface A")
}
}
interface B {
fun printMeToo() {
println("I am another Method from interface B")
}
}
// implements two interfaces A and B
class multipleInterfaceExample: A, B
fun main(args: Array) {
val obj = multipleInterfaceExample()
obj.printMe()
obj.printMeToo()
}
在上面的示例中,我们创建了两个示例接口A,B,并且在名为“ multipleInterfaceExample”的类中,我们实现了前面声明的两个接口。上面的代码将在浏览器中产生以下输出。
method of interface A
I am another Method from interface B