Kotlin之对象表达式

以下内容针对Kotlin19 、RunnableKotlin 进行代码举例

open class Kotlin19 {
    open fun add(info: String) { println("println add info=$info") }
    open fun del(info: String) { println("println dell info=$info") }
}

interface RunnableKotlin {
    fun run()
}

1、对象表达式的格式:

object[:若干个父类型,中间用逗号隔开]{
 
}

2、对class 匿名对象表达式

 //1.对class类 用kotlin匿名对象表达式方式 实现
val kt = object : Kotlin19() {
      override fun add(info: String) {
         println("对class类 用匿名对象表达式add info=$info")
     }

    override fun del(info: String) {
        println("对class类 用匿名对象表达式add info=$info")
    }
}
kt.add("hello");
kt.del("hello");

输出:

class类 用匿名对象表达式add info=hello
对class类 用匿名对象表达式add info=hello

3、对class 具名对象表达式

class MyKotlin : Kotlin19() {

    override fun add(info: String) {
        println("对class类 用具名对象表达式 add info=$info")
    }

    override fun del(info: String) {
        println("对class类 用具名对象表达式 dell info=$info")
    }
}
//2.对class类 用kotlin具名对象表达式方式 实现
val mk = MyKotlin()
mk.add("hello2")
mk.del("hello2")

输出:

class类 用具名对象表达式 add info=hello2
对class类 用具名对象表达式 dell info=hello2

4、对Java接口用对象表达式

//3.对Java的接口  用kotlin匿名对象表达式方式 实现
val myRun = object : Runnable {
    override fun run() {
       println("对Java接口  用kotlin对象表达式方式 实现")
    }
 }
 myRun.run()

输出:

对Java接口  用kotlin对象表达式方式 实现

5、对Java接口用Java最简洁的方式

//4.对Java接口  用Java最简洁的方式 实现
Runnable {
   println("对Java接口  用Java最简洁的方式 实现")
}.run()

输出:

对Java接口  用Java最简洁的方式 实现

6、对kotlin接口用对象表达式

//5.对kotlin接口  用kotlin匿名对象表达式方式实现
object : RunnableKotlin {
     override fun run() {
        println("对kotlin接口  用kotlin对象表达式方式 实现")
    }
}.run()

输出:

对kotlin接口  用kotlin对象表达式方式 实现

7、对kotlin接口用Java最简洁的方式(注意:kotlin不支持的)

//6.对kotlin接口 用Java最简洁的方式实现,无法实现
/*RunnableKotlin{

}*/

8、完整代码

/**
 * add dell println
 */
open class Kotlin19 {
    open fun add(info: String) { println("println add info=$info") }
    open fun del(info: String) { println("println dell info=$info") }
}

//todo kotlin语言的对象表达式学习
//1.class 匿名对象表达式
//2.class 具名对象表达式
//3.对Java接口用对象表达式
//4.对Java接口用Java最简洁的方式
//5.对kotlin接口用对象表达式
//6.对kotlin接口用Java最简洁的方式
fun main() {

    //1.对class类 用kotlin匿名对象表达式方式 实现
    val kt = object : Kotlin19() {
        override fun add(info: String) {
            println("对class类 用匿名对象表达式add info=$info")
        }

        override fun del(info: String) {
            println("对class类 用匿名对象表达式add info=$info")
        }
    }
    kt.add("hello");
    kt.del("hello");

    println()

    //2.对class类 用kotlin具名对象表达式方式 实现
    val mk = MyKotlin()
    mk.add("hello2")
    mk.del("hello2")

    println()


    //3.对Java的接口  用kotlin匿名对象表达式方式 实现
    val myRun = object : Runnable {
        override fun run() {
            println("对Java接口  用kotlin对象表达式方式 实现")
        }
    }
    myRun.run()

    println()

    //4.对Java接口  用Java最简洁的方式 实现
    Runnable {
        println("对Java接口  用Java最简洁的方式 实现")
    }.run()

    println()

    //5.对kotlin接口  用kotlin匿名对象表达式方式实现
    object : RunnableKotlin {
        override fun run() {
            println("对kotlin接口  用kotlin对象表达式方式 实现")
        }
    }.run()


    //6.对kotlin接口 用Java最简洁的方式实现,无法实现
    /*RunnableKotlin{

    }*/

    //小结:Java接口,有两种方式   kotlin接口只有一种方式

}

class MyKotlin : Kotlin19() {

    override fun add(info: String) {
        println("对class类 用具名对象表达式 add info=$info")
    }

    override fun del(info: String) {
        println("对class类 用具名对象表达式 dell info=$info")
    }
}


interface RunnableKotlin {
    fun run()
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值