首页 > 其他分享 >Android-kotlin-接口与多态的表现

Android-kotlin-接口与多态的表现

时间:2023-06-22 14:36:24浏览次数:49  
标签:充电器 kotlin 多态 接口 InterfacePhone 充电 Android 父类


上一篇博客介绍了 Android-Kotlin-抽象类与多态的表现 ; 而这一篇博客专门介绍下 接口与多态的表现

1.选择包名,然后右键:

Android-kotlin-接口与多态的表现_子类

2.选择Class类型,会有class:

Android-kotlin-接口与多态的表现_ide_02

3.选择File类型,不会自动有class:

Android-kotlin-接口与多态的表现_子类_03

5. 选择interface,是创建接口:

Android-kotlin-接口与多态的表现_子类_04

6.目录结构:

Android-kotlin-接口与多态的表现_父类_05



1.定义手机充电接口标准规范 InterfacePhone:

package cn.kotlin.kotlin_oop06

/**
 * 定义描述手机的Interface
 */
interface InterfacePhone {

    /**
     * 定义此功能的标准,只要是符合typeC接口的充电器就能充电,否则就无法充电,接口标准必须是Type-C
     * (接口关注的是功能)
     */
    fun typeC()

}

2.描述 红色的TypeC手机充电器,(符合手机充电接口标准规范 InterfacePhone)

package cn.kotlin.kotlin_oop06

/**
 * 描述 红色的TypeC手机充电器
 */
class RedChargerPhoneTypeC : InterfacePhone{

    /**
     * 实现了InterfacePhone接口,就必须要用override重写父类接口的标准,因为这是父类规定的规则,必须是Type-C接口才能充电
     */
    override fun typeC() {
        println("红色充电器,正常的给手机充电了--> 充电中....")
    }

}

3.描述 蓝色的TypeC手机充电器,(符合手机充电接口标准规范 InterfacePhone)

package cn.kotlin.kotlin_oop06

/**
 * 描述 蓝色的TypeC手机充电器
 */
class BlueChargerPhoneTypeC : InterfacePhone{

    /**
     * 实现了InterfacePhone接口,就必须要用override重写父类接口的标准,因为这是父类规定的规则,必须是Type-C接口才能充电
     */
    override fun typeC() {
        println("蓝色充电器,正常的给手机充电了--> 充电中....")
    }

}

4.描述 黑色的TypeC手机充电器,(符合手机充电接口标准规范 InterfacePhone)

package cn.kotlin.kotlin_oop06

/**
 * 描述 白色的TypeC手机充电器
 */
class BlackChargerPhoneTypeC : InterfacePhone{

    /**
     * 实现了InterfacePhone接口,就必须要用override重写父类接口的标准,因为这是父类规定的规则,必须是Type-C接口才能充电
     */
    override fun typeC() {
        println("白色充电器,正常的给手机充电了--> 充电中....")
    }

}

5.main测试方法,多态的表现:

package cn.kotlin.kotlin_oop06

fun main(args: Array<String>) {
    // 父类 personChildClass = new 子类()
    var interfacePhone:InterfacePhone = RedChargerPhoneTypeC()
    interfacePhone.typeC()

    // 父类 personChildClass = new 子类()
    interfacePhone = BlackChargerPhoneTypeC()
    interfacePhone.typeC()

    // 父类 personChildClass = new 子类()
    interfacePhone = BlueChargerPhoneTypeC()
    interfacePhone.typeC()

    // 父类 personChildClass = new N个子类()
    // .......
}

执行结果:

Android-kotlin-接口与多态的表现_ide_06

mian测试方法,多态的表现:

package cn.kotlin.kotlin_oop06

fun main(args: Array<String>) {

    // listOf<InterfacePhone> 传递的是InterfacePhone父类接口,所以可以增加所有 InterfacePhone接口>子类

    var list = listOf<InterfacePhone>(RedChargerPhoneTypeC(), BlackChargerPhoneTypeC(), BlueChargerPhoneTypeC())

    for (l in list)
        l.typeC()
}

执行结果:

Android-kotlin-接口与多态的表现_android_07


标签:充电器,kotlin,多态,接口,InterfacePhone,充电,Android,父类
From: https://blog.51cto.com/u_16163510/6534858

相关文章

  • Android Xml文件生成,Xml数据格式写入
    生成xml文件格式数据,Android提供了Xml.newSerializer();,可以理解为Xml序列化;序列化:把内存里面的数据(file,databases,xml等等)丢给某一个地方; 反序列化:把某个地方的数据(file,databases,xml等等),拿到内存中;既然是Android操作Xml,就用Android所提供的API,不用Java所提供的API,DOM......
  • Android-Kotlin-When&类型推断
    Kotlin的when表达式TextEngine描述文字处理对象:packagecn.kotlin.kotlin_base02/***描述文字处理对象**valtextContent传入进来的文字内容val是常量*/classTextEngine(valtextContent:String){/***处理文字,然后返回*返回完整的字符串......
  • Android-kotlin的继承
    上一篇博客讲了Android-kotlin的配置/入门,然后简单的实现了一个计算器功能。今天我们来讲讲kotlin中的继承是怎样的。1.先看一个案例,子类使用到父类的资源【案例一】父类张翠山:packagecn.kotlin.kotlin_oop03/***描述父对象:张翠山**personDescribe此人的简介/var......
  • Android-kotlin-具名参数
    先看一个这样的案例,【案例一】:packagecn.kotlin.kotlin_base05funshowAction1(country:String,volk:String){println("我的祖国是${country},我的民族是$volk")}funshowAction2(country:String,volk:String){println("我的祖国是${country},我的民族是......
  • 万事俱备面饿了么Android!面完哭了呜呜呜,还是美团香!
    大家应该看过很多分享面试成功的经验,但根据幸存者偏差的理论,也许多看看别人面试失败在哪里,对自己才更有帮助。最近跟一个朋友聊天,他漫不经心地复习了几个月,就去参加了饿了么面试,第二面结束后,嗯,挂了…当天怒清购物车,卸载饿死了么。下面是他回忆整理的凉经:一面(全都会)1.点击图标,应用打......
  • Android-Kotlin-区间与FOR&LIST&MAP简单使用
    区间与for:packagecn.kotlin.kotlin_base04/***区间与for*/funmain(args:Array<String>){/***Kotlin中提供了区间,例如:存入1到100,在Java中可能要写多行代码,而在Kotlin中很简单,代码如下*1..100*/varnumbers=1..100/***......
  • Android-Kotlin-递归与尾递归
    递归:阶乘计算:/***阶乘:*1的阶乘是1,因为1往下走一个楼梯就是0了*2的阶乘是2*1*3的继承是3*2*1*4的继承是4*3*2*1*5的阶乘是5*4*2*1*/packagecn.kotlin.kotlin_base06......
  • Android-引导用户指纹录入
    根据不同的手机,跳转到指纹录入界面,如果没有检测到手机的品牌,就提醒用户手动去指纹录入:首先描述手机信息检测对象,PhoneInfoCheck.java:packagecom.esandinfo;importandroid.app.AlertDialog;importandroid.content.ComponentName;importandroid.content.Context;importandr......
  • Android—MySQLiteOpenHelper源码解读
    MySQLiteOpenHelper:直接放上源码,解读在注释里packagecom.esandinfo;importandroid.content.Context;importandroid.database.sqlite.SQLiteDatabase;importandroid.database.sqlite.SQLiteOpenHelper;importandroid.util.Log;publicclassMySQLiteOpenHelperextends......
  • 腾讯Android岗三面:EventBus 发送的消息,如何做到线程切换?
    一.前言EventBus是一个基于观察者模式的事件订阅/发布框架,利用EventBus可以在不同模块之间,实现低耦合的消息通信。EventBus因为其使用简单且稳定,被广泛应用在一些生产项目中。通常我们就是使用EventBus分发一些消息给消息的订阅者,除此之外我们还可以通过EventBus将消息传......