Kotlin学习——面向对象-多态

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chengxu_kuangrexintu/article/details/82560903

前言

前面两篇博客中,我给大家分享了Kotlin面向对象的封装和继承两大特性,那这篇博客将给大家分享Kotlin面向对象最后一个特性——多态。

多态

同一种功能多种表达形态。

Demo

我们创建一个类表示我们人类,人类又分为男人和女人。人类都会吃饭,吃饭有很多形态,让男人站着吃,女人坐着吃。我们用代码表示,如下:

1.创建一个父类(基类)

/**
 * 抽象的人类
 */
abstract class Human(var name: String) {
    /**
     * 定义一个吃的方法
     */
    abstract fun eat()
}

2.创建两个子类

男人类

/**
 * 男人类
 */
class Man(name:String) :Human(name){
    // 重写吃的方法
    override fun eat() {
        println("${name}站着吃饭")
    }
}

女人类

/**
 * 女人类
 */
class Woman(name:String) :Human(name) {
    // 重写吃的方法
    override fun eat() {
        println("${name}坐着吃饭")
    }
}

3.测试类

fun main(args: Array<String>) {
    // 创建一些人
    var person1 = Man("Test1")
    var person2 = Woman("Test2")
    var person3 = Man("Test3")
    var person4 = Woman("Test4")
    var person5 = Man("Test5")

    //请上面的人吃饭到房间吃饭(集合表示)
    var houseList = listOf(person1,person2,person3,person4,person5)
    for (h in houseList){
        h.eat()
    }
}

4.运行结果

这里写图片描述

总结

同一种功能多种表现形式,这就是我们的多态。上面的Demo只是一个粗浅的例子,我们在日常的开发当中会经常碰到多态的。

猜你喜欢

转载自blog.csdn.net/chengxu_kuangrexintu/article/details/82560903