kotlin 基础 11 多态

作者: zidea | 来源:发表于2019-04-07 19:38 被阅读8次
    kotlin.jpeg

    在计算机我们通过抽象事物的共同点对事物进行分类,在现实中我们人类认识是否也是通过归类的方式来认识事物,区分事物。分类通常也是采取抽象方式来进行分类。这里我们把之前的定义 Human 修改为抽象类,通过给 class 添加 abstract 更改为抽象类。

    abstract class Human(var name:String){
        abstract fun walk()
    
    }
    
    class XMan(name:String):Human(name){
    
        override fun walk(){
            println("walk two seepd ")
        }
    }
    
    class Man(name: String):Human(name){
        override fun walk() {
            println("normal speed walk")
        }
    }
    class Woman(name:String):Human(name){
        override fun walk() {
            println("normal speed walk")
        }
    
    }
    

    那么我们回头再看一看多态


    xmen.jpeg
    • 同种功能,不同表现形态
      我们和变种人同样会移动,但是有的变种人是靠飞来移动,而我们人类是靠走来移动。
    class XMan(name:String):Human(name){
        override fun move() {
            println("can fly")
        }
    
        override fun walk(){
            println("walk two seepd ")
        }
    }
    
     val icanfly = XMan("icanfly")
        val tom = Man("tom")
        val alice = Woman("alice")
    
        var houseList = listOf<Human>(icanfly,tom,alice)
        for( human in houseList){
            human.move()
        }
    
    kotlin_end.jpg

    相关文章

      网友评论

        本文标题:kotlin 基础 11 多态

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