Kotlin笔记25——面向对象-多态

本文通过一个简单示例介绍了Kotlin面向对象编程中的多态特性。通过抽象类`Human`及其子类`Man`和`Woman`展示了如何实现同一种功能的不同表现形式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

前面两篇博客中,我给大家分享了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只是一个粗浅的例子,我们在日常的开发当中会经常碰到多态的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值