Kotlin学习笔记-----面向对象(多态)

面向对象-----多态

方法的重写

kotlin中的多态和java中的多态概念一样, 而方法的重写就是多态的一种表现形式在kotlin中, 如果子类要重写父类的方法, 那么父类的方法必学被open 关键字所修饰, 并且子类的方法要使用override关键字修饰

open class Animal {
  
    open fun eat(){
        println("吃......")
    }
}
​
class Dog : Animal() {
  
    override fun eat() {
        println("狗吃肉")
    }
}
​
class Cat : Animal() {
  
    override fun eat() {
        println("猫吃鱼")
    }
}

 

抽象类和抽象方法

此时, 父类的eat()方法的方法体其实并没有必要,可以变为抽象方法, kotlin和java在这点上一样,都是使用abstract 关键字修饰, 并且类也要被abstract关键字修饰

abstract class Animal {
    // 被abstract关键字所修饰的方法, 因为必须要被子类重写, 所以就可以省略open关键字
    abstract fun eat()
}
​
class Cat : Animal() {
  
    override fun eat() {
        println("猫吃鱼")
    }
}
​
class Dog : Animal() {
  
    override fun eat() {
        println("狗吃肉")
    }
}

 

 

 

posted @ 2018-04-02 16:03  予有荣焉  阅读(179)  评论(0编辑  收藏  举报