Kotlin 接口2024 年 8 月 29 日 | 阅读 3 分钟 接口是类的蓝图。Kotlin 接口类似于 Java 8。 它包含抽象方法声明以及方法的实现。 定义接口接口使用关键字 interface 定义。 例如 仅声明而没有方法体的方法, 默认为抽象方法。 为什么使用 Kotlin 接口?以下是使用接口的原因
子类仅扩展一个超类,但实现多个接口。 父类或接口的实现使用 (:) 运算符在子类中完成。 实现接口在此示例中,我们在 InterfaceImp 类中实现了 MyInterface 接口。 InterfaceImp 类提供了在 MyInterface 接口中声明的属性 id 和抽象方法 absMethod() 的实现。 输出 Calling overriding id value = 101 MyInterface doing some work Implementing abstract method.. 实现多个接口我们可以在同一个类中实现不同接口的多个抽象方法。 必须在子类中实现所有抽象方法。 接口的其他非抽象方法可以从派生类中调用。 例如,创建两个接口 MyInterface1 和 MyInterface2,分别带有抽象方法 doSomthing() 和 absMethod()。 这些抽象方法在派生类 MyClass 中被覆盖。 输出 overriding doSomthing() of MyInterface1 overriding absMethod() of MyInterface2 解决具有相同方法覆盖冲突的不同接口让我们看一个例子,其中接口 MyInterface1 和接口 MyInterface2 都包含相同的非抽象方法。 类 MyClass 提供了这些接口的实现。 使用 MyClass 的对象调用接口的方法会产生错误。 输出 Kotlin: Class 'MyClass' must override public open fun doSomthing(): Unit defined in MyInterface1 because it inherits multiple interface methods of it 要解决上述问题,我们需要指定我们要调用的接口的特定方法。 让我们看一个下面的例子。 在下面的示例中,两个接口 MyInterface1 和 MyInterface2 包含两个抽象 methodsadsMethod() 和 absMethod(name: String) 和非抽象方法 doSomthing()。 类 MyClass 实现两个接口并覆盖抽象方法 absMethod() 和 absMethod(name: String) 。 要覆盖非抽象方法 doSomthing(),我们需要使用 super 关键字 指定带有方法的接口名称,如 super<interface_name>.methodName(). 输出 MyInterface 2 doing some work Implements absMethod() of MyInterface1 Implements absMethod(name) of MyInterface2 name is Ashu 输出 MyInterface 1 doing some work MyInterface 2 doing some work MyInterface 2 absMethod MyInterface 1 doing some work MyInterface1 absMethod implementation 下一节Kotlin 数据类 |
我们请求您订阅我们的新闻通讯以获取最新更新。