37.多态

1. 同种功能,不行的表现

2. 通过父类接收 执行的是子类的方法

3. 代码如下:

fun main(args: Array<String>) {
    val dog: Animal = Dog()
    val cat: Animal = Cat()
    dog.call()
    cat.call()
}

abstract class Animal {

    var color: String = ""

    open fun call() {
        println("动物叫")
    }
}

/**
 * 狗
 */
class Dog : Animal() {
    override fun call() {
        println("狗汪汪叫")
    }
}

/**
 * 猫
 */
class Cat : Animal() {
    override fun call() {
        println("猫喵喵叫")
    }
}
image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,805评论 1 32
  • 在Python中前面几篇札记中的继承,和本文中即将讲解的多态和封装是面向对象编程 OOP的三个重要特征。 Pyth...
    皮皮大阅读 1,644评论 0 2
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 7,949评论 2 9
  • 分享之第三天。放假回来。儿子坚持要每天跑步锻炼身体。他说现在该练体能的时候了。虽然下着雨。她还是坚持去跑步。回到家...
    一清有道阅读 1,677评论 0 0
  • 1 月月有婵娟,然而中秋的月儿,因为亲人的相聚而显得格外圆满。相聚未成的人们不免平添出几份伤感。 “今夜月明人尽望...
    潇香阅读 5,232评论 2 7