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

选择包名,然后右键:

选择Class类型,会有class:

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

 选择interface,是创建接口:

目录结构:



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

package cn.kotlin.kotlin_oop06

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

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

package cn.kotlin.kotlin_oop06

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

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

package cn.kotlin.kotlin_oop06

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

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

package cn.kotlin.kotlin_oop06

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

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个子类()
// .......
}

执行结果:

 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-接口与多态的表现的更多相关文章

  1. 谁说接口不能有代码?—— Kotlin接口简介(KAD 26)

    作者:Antonio Leiva 时间:Jun 6, 2017 原文链接:https://antonioleiva.com/interfaces-kotlin/ 与Java相比,Kotlin接口允许你 ...

  2. C#中的接口实现多态

    我们都知道虚方法实现多态,抽象方法实现多态等,我们今天来看看如何使用接口实现多态 1.首先我们先要来了解了解什么是接口,它存在的意识 01.接口就是为了约束方法的格式(参数和返回值类型)而存在的 02 ...

  3. C#面向对象(三)接口实现多态

    一.如何用接口实现多态? 1.定义一个接口. using System; using System.Collections.Generic; using System.Linq; using Syst ...

  4. (转)Android之接口回调机制

    开发中,接口回调是我们经常用到的. 接口回调的意思即,注册之后并不立马执行,而在某个时机触发执行. 举个例子: A有一个问题不会,他去问B,B暂时解决不出来,B说,等我(B)解决了再告诉你(A)此时A ...

  5. No2_4.接口继承多态_Java学习笔记_经典案例

    import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Collections; import jav ...

  6. ShiWangMeSDK Android版接口文档 0.2.0 版

    # ShiWangMeSDK Android版接口文档 0.2.0 版 android 总共有 14 个接口,分别涉及到初始化和对界面的一些细节的控制.下面详细介绍接口,如果没有特殊说明,接口都在 S ...

  7. Java基础学习笔记八 Java基础语法之接口和多态

    接口 接口概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”.接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成.这样将功能的定义 ...

  8. java接口,接口的特性,接口实现多态,面向接口编程

    package cn.zy.cellphone; /**接口是一种引用数据类型.使用interface声明接口,形式 * 形式:public interface 接口名称{} * 接口不能拥有构造方法 ...

  9. Kotlin 接口

    Kotlin 接口与 Java 8 类似,使用 interface 关键字定义接口,允许方法有默认实现: interface MyInterface { fun bar() // 未实现 fun fo ...

随机推荐

  1. c++11 stl 学习之 shared_ptr

    shared_ptr智能指针 shared_ptr 的声明初始化方式由于指针指针使用explicit参数 必须显示声明初始化shared_ptr<string> pNico = new s ...

  2. JWT-Token登陆校验

    JWT:就是靠给客户端(浏览器)一个规范凭证(签名),然后服务器解析签名,代替原有的session存值. 不带refreshToken的JWT例子:https://blog.csdn.net/u011 ...

  3. 旅行家的预算(NOIP1999&水题测试2017082301)

    题目链接:旅行家的预算 这题还可以,不算太水. 这题贪心即可. 我们采取如下动作: 如果在装满油的情况下能到达的范围内,没有加油站,则无解. 如果在装满油的情况下能到达的范围内,油价最低的加油站的油价 ...

  4. SPOJ - NSUBSTR(长度为1-len的字串出现的最大次数

    题意:给你一个字符串,要你输出1-len的字串出现的最大次数. /** @xigua */ #include <stdio.h> #include <cmath> #inclu ...

  5. unity的三种update

    void FixedUpdate () 固定更新 void Update ()        更新 void LateUpdate()  晚于更新 FixedUpdate () 和 Update () ...

  6. kbmmw 5.04 发布

    增加了一大波功能,消灭了一大堆问题,也肯定引进了一大票BUG.We are happy to announce the release of our latest version of kbmMW. ...

  7. 整合SPRING CLOUD云服务架构 - 企业分布式微服务云架构构建

    整合SPRING CLOUD云服务架构 - 企业分布式微服务云架构构建 1.   介绍 Commonservice-system是一个大型分布式.微服务.面向企业的JavaEE体系快速研发平台,基于模 ...

  8. set集合的排序

    在hibernate的OneToMany的实体关联的时候,one端的set是无序的,可是需要按照顺序来搞的话就比较麻烦了. 下面给出一个例子. Set<DiaryPicture> diar ...

  9. vue 开发系列(四) vue 使用外部JS

    概要 在开发时我们会经常需要使用到外部的JS,这样我们需要引入外部js,然后进行使用. 实现方法 我们在开发的过程中需要使用到 sha256 将用户的密码进行加密传输. 我们对js进行一点点改造. f ...

  10. 含参变量积分-Leibniz法则

    定理3,5参考同济下册. 下面的求导-> 三重积分可以化为累次积分经过过2次累次积分后,三重积分对dt的导数形式就等价于定理3了