在Java中,当你实现一个接口时,需要使用implements 关键字,当扩展一个现有的类时,需要使用extends 。
下面的示例代码显示了如何对Main 类实现Animal 接口:
interface Animal {
static void sleep(){
System.out.println("ZzzZ");
}
}
class Dog implements Animal {
public static void main(String[] args) {
Animal.sleep();
}
}
而下面的代码显示了如何在Car 类上扩展Vehicle 类:
class Vehicle {
static void start(){
System.out.println("Igniting the engine");
}
}
class Car extends Vehicle {
public static void main(String[] args) {
start();
}
}
在Kotlin中,implements 和extends 两个关键字都被冒号: 语法取代。这个符号将标志着一个接口的实现或一个类的扩展。
这里是你如何用Kotlin实现一个接口:
interface Animal {
fun sleep() = println("ZzzZ")
}
class Dog: Animal
val myDog = Dog()
myDog.sleep() // ZzzZ
这里是你如何用Kotlin扩展一个类:
open class Vehicle {
fun start() = println("Igniting the engine")
}
class Car: Vehicle()
val myCar = Car()
myCar.start()
Kotlin中的所有类默认都是final ,所以你需要添加open 修饰符来允许Kotlin中的类扩展。
但是无论你需要实现一个接口还是扩展一个类,你只需要在类名后面使用: 语法就可以了。
当你想
- 实现多个接口
- 或在一个类上实现一个接口和一个类
你可以在冒号后面列出所有的接口和类,用逗号分开,如下图所示:
open class Vehicle {
fun start() = println("Igniting the engine")
}
interface Animal {
fun sleep() = println("ZzzZ")
}
class Car : Vehicle(), Animal
val myCar = Car()
myCar.start()
myCar.sleep()
而这将是Kotlin中关于Javaimplements 替换的全部。