Android-Kotlin-接口与多态的表现
上一篇博客介绍了 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-接口与多态的表现的更多相关文章
- 谁说接口不能有代码?—— Kotlin接口简介(KAD 26)
作者:Antonio Leiva 时间:Jun 6, 2017 原文链接:https://antonioleiva.com/interfaces-kotlin/ 与Java相比,Kotlin接口允许你 ...
- C#中的接口实现多态
我们都知道虚方法实现多态,抽象方法实现多态等,我们今天来看看如何使用接口实现多态 1.首先我们先要来了解了解什么是接口,它存在的意识 01.接口就是为了约束方法的格式(参数和返回值类型)而存在的 02 ...
- C#面向对象(三)接口实现多态
一.如何用接口实现多态? 1.定义一个接口. using System; using System.Collections.Generic; using System.Linq; using Syst ...
- (转)Android之接口回调机制
开发中,接口回调是我们经常用到的. 接口回调的意思即,注册之后并不立马执行,而在某个时机触发执行. 举个例子: A有一个问题不会,他去问B,B暂时解决不出来,B说,等我(B)解决了再告诉你(A)此时A ...
- No2_4.接口继承多态_Java学习笔记_经典案例
import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Collections; import jav ...
- ShiWangMeSDK Android版接口文档 0.2.0 版
# ShiWangMeSDK Android版接口文档 0.2.0 版 android 总共有 14 个接口,分别涉及到初始化和对界面的一些细节的控制.下面详细介绍接口,如果没有特殊说明,接口都在 S ...
- Java基础学习笔记八 Java基础语法之接口和多态
接口 接口概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”.接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成.这样将功能的定义 ...
- java接口,接口的特性,接口实现多态,面向接口编程
package cn.zy.cellphone; /**接口是一种引用数据类型.使用interface声明接口,形式 * 形式:public interface 接口名称{} * 接口不能拥有构造方法 ...
- Kotlin 接口
Kotlin 接口与 Java 8 类似,使用 interface 关键字定义接口,允许方法有默认实现: interface MyInterface { fun bar() // 未实现 fun fo ...
随机推荐
- BZOJ3669 膜法森林 - LCT
Solution 非常妙的排序啊... 仔细想想好像确实能够找出最优解QUQ 先对第一关键字排序, 在$LCT$ 维护第二关键字的最大值 所在的边. 添边时如果$u, v$ 不连通 就直接加边. 如 ...
- JSP属性的四种保存范围(page request session application)
JSP提供了四种属性的保存范围,分别为page.request.session.application 其对应的类型分别为:PageContext.ServletRequest.HttpSession ...
- 搭建java环境和java学习
https://blog.csdn.net/fishe_r/article/details/18863447 其中的 java配置文件用: { "shell_cmd": " ...
- 编译https://github.com/CIR-KIT/steer_drive_ros时出现的问题
解决gazebo对应的protobuf版本问题: I've come across to the same problem. I'm using Ubuntu 16.04, ROS Kinetic a ...
- C#调用开源图像识别类库tessnet2
首先下载tessnet2_32.dll及相关语言包,将dll加入引用 private tessnet2.Tesseract ocr = new tessnet2.Tesseract();//声明一个O ...
- Reduce 和 Transduce 的含义
一.reduce 的用法 reduce是一种数组运算,通常用于将数组的所有成员"累积"为一个值. var arr = [1, 2, 3, 4]; var sum = (a, b) ...
- Ajax在jQuery中的应用 (4)向jsp提交表单数据
ajax技术带给我们的是良好的用户体验,同时,使用jquery可以简化开发,提高工作效率. 下面就介绍一下大致的开发步骤. 工具/原料 本文中使用的是 jquery-1.3.2.min.js 方法/步 ...
- Bing Developer Assistant开发随记
Thumb很适合用来做拖动效果的,不会让鼠标轻易跑掉. Combo中的选项是当字符串输入并激发事件后自动加入的,可使用IVsUIShell.SetMRUComboText(GuidList.guidO ...
- 【NIFI】 Apache NiFI 之 ExecuteScript处理(一)
本例介绍NiFI ExecuteScript处理器的使用,使用的脚本引擎ECMScript FlowFile I / O简介 NiFi中的流文件由两个主要组件构成,即属性和内容.属性是关于内容/流文件 ...
- Java第3章笔记
if基本语法: if(条件){// 表达式 // 代码块 } eg: int a = 10; if(a > 1){ System.out.println("内容& ...