Kotlin:接口能包含属性和方法实现了

作者: 1024工场 | 来源:发表于2017-09-13 01:29 被阅读53次

一、接口定义


  1. Kotlin的接口与Java 8类似,即包含抽象方法的声明,也包含实现
  2. 与抽象类不同的是,接口无法保存状态可以有属性必须声明或提供访问器实现;
  3. 使用关键字interface来定义
//3.使用关键字interface定义接口MyInterface
interface MyInterface {
    fun bar()
    //1.可以包含方法foo()实现
    fun foo() {
     
    }
}

二、实现接口


  1. 一个类或对象可以实现一个或多个接口
//1.Child类实现了MyInterface接口,实现bar()方法
class Child : MyInterface {
    override fun bar() {
        // 方法体
    }
}

三、接口中属性


  1. 可以在接口中定义属性,要么是抽象的,要么提供访问器的实现
  2. 接口中声明的属性不能有幕后字段,因此接口声明的访问器不能引用它们;
interface MyInterface {
    //1.声明抽象的属性prop
    val prop: Int 

    val propertyWithImplementation: String
        get() = "foo"

    fun foo() {
        print(prop)
    }
}

class Child : MyInterface {
    //1.覆盖属性prop
    override val prop: Int = 29
}

四、解决覆盖冲突


  1. 实现多个接口时,可能会遇到同一个方法继承多个实现的情况,通过类型限定的super关键字指定实现
interface A {
    fun foo() { print("A") }
    fun bar()
}

interface B {
    fun foo() { print("B") }
    fun bar() { print("bar") }
}

class C : A {
    override fun bar() { print("bar") }
}

class D : A, B {
    //D分别从A、B接口继承foo()方法
    override fun foo() {
        //1.使用super关键字,调用A和B foo()方法实现
        super<A>.foo()
        super<B>.foo()
    }

    override fun bar() {
        //1.实现super关键字,调用B bar()方法实现
        super<B>.bar()
    }
}

1.新技术,新未来!尽在1024工场。时刻关注最前沿技术资讯,发布最棒技术博文!(甭客气!尽情的扫描或者长按!)

1024工场服务号
2.加入“Kotlin开发”QQ讨论群,一起学习一起Hi。(甭客气!尽情的扫描或者长按!)
Kotlin开发群

相关文章

  • Kotlin:接口能包含属性和方法实现了

    一、接口定义 Kotlin的接口与Java 8类似,即包含抽象方法的声明,也包含实现; 与抽象类不同的是,接口无法...

  • kotlin接口

    kotlin中的接口与Java8中的类似,既包含方法也包含属性。方法包括抽象方法和普通方法,属性包含抽象属性和普通...

  • Kotlin学习笔记之 7

    7.Kotlin 接口 默认实现kotlin支持接口方法的默认实现,以及支持接口属性的重写接口中的属性无法进行初始...

  • Kotlin-接口

    接口 Kotlin 的接口可以既包含抽象方法的声明也包含实现。与抽象类不同的是,接口无法保存状态。它可以有属性但必...

  • kotlin继承

    继承语法 类和接口的继承通过 : 来实现 接口 kotlin 的接口可以包含抽象方法,以及方法的实现,接口可以有属...

  • kotlin接口

    借鉴Kotlin中文站 接口 Kotlin 的接口可以既包含抽象方法的声明也包含实现。与抽象类不同的是,接口无法保...

  • Kotlin 类、对象和接口(一)——定义类继承结构

    Kotlin 的类和接口跟 Java 中对应的有点不同,比如:Kotlin 中接口可以包含属性声明,Kotlin ...

  • 接口与抽象类的区别:

    接口: 接口里只能包含抽象方法,不同包含已经提供实现的方法 接口里只能定义静态常量属性,不能定义普通属性。 接口不...

  • Kotlin之类、对象和接口

    Kotlin的类和接口与Java的类和接口是有一定的区别的。Kotlin的接口是可以包含属性声明。Kotlin默认...

  • 【第7篇】Kotlin接口的详解

    1、接口 Kotlin 的接口与 Java 8 类似,既包含抽象方法的声明,也包含实现。与抽象类不同的是,接口无法...

网友评论

    本文标题:Kotlin:接口能包含属性和方法实现了

    本文链接:https://www.haomeiwen.com/subject/gpzhsxtx.html