接口:

对于什么是接口这里就不概述了,跟java中的概念一样,下面直接上代码进行操练:

而男人跟女人的接口当然也是不同的,很显然男人跟女人最大的差别就是拥有"小弟弟"【我黄我暴利】,所以可以在男人的接口中定义一个这样的接口,如下:

接下来则定义一个具体的男人,来实现这个接口:

而作为具体类当然得实现抽象的接口,所以此时标红了,所以接下来实现下:

然后里面打印一句话:

接下来应用一下:

貌似这个接口跟上一次学的抽象类木有啥大的区别,不信,咱们用抽象类来改造一下程序:

这时调用代码完全不用动其结果跟使用接口的方式是一模一样的。从这个例子表现上看貌似确实是没区别,但是肯定是有区别的啦,要不然怎么会推出来不同的概念呢,下面来用文字对其描述一下其区别:“接口是事物的能力,而抽象类是事物的本质”,那如何说明这个问题呢?当然用代码啦,在磊码之前先将IMan还是还原成接口,如下:

先来新建一个人类,它是抽象的,描述了事件的本质:

然后对于男人来需要继承这个人类吃东西的特性,并且他还有一个小弟弟的功能,如下:

为了更清晰的对接口与抽象类有一个直观的理解,接下来新建一个太监类,很显明它可以吃东西,但是没有小弟弟的功能,如下:

通过这个太监的例子,是不是对于接口和抽象类有了一个比较清晰的理解,接下来应用一下:

接下来,咱们将男人与太监装到一上屋子里,如下:

编译运行:

代理与委托:

这里以大头儿子与小头爸爸的故事来展开说明,如下:

首先定义一个洗碗的接口,如下:

接下来定义相关的角色:

接下来应用一下:

接下来引入代理模式,既然小头儿子洗碗只要1块钱,那对于爸爸来说我叫儿子来代替洗碗不就得了,反正老婆大人又不知道,最终给儿子一块钱,自己挣9块钱那也相当happy嘛,那如何委托给儿子来做呢?如下:

这时再运行:

这里爸爸还是可以重写洗碗的方法加一些润色:

单例模式:

这个模式我想不用多解释了,实际当中大量见到的,对于上面的代码其实是有个坑的,如下:

下面来验证一下:

很容易理解啦,因为走构造了,那如果想让儿子是个单例在kotlin中如何搞呢?

此时代码报错了:

当然小头爸爸的代码也报错了,如下:

那怎么修改代码呢?在kotlin中如果是单例对象的话,则不需要在类名之后跟括号了,所以代码修改如下:

转载于:https://www.cnblogs.com/webor2006/p/8350072.html

kotlin面向对象之接口、代理与委托、单例模式相关推荐

  1. kotlin学习笔记——接口与委托

    kotlin中的接口比java7中的要强大很多,与java8的很相似. java7中的接口只能定义行为,不能实现. kotlin中的接口也可以实现函数,但是与类的区别是它们是无状态(stateless ...

  2. Kotlin学习(11)→抽象类、接口、接口代理

    文章目录 1.抽象类 2.接口 3.接口代理 在期待着郭霖先生的<第一行代码(第三版)>时,意识到自己需要补充必要的Kotlin知识,现在通过写博客进行分享,争取拿到书之后早日上手. 使用 ...

  3. 当Kotlin邂逅设计模式之代理模式(二)

    简述: 从这篇文章起,我们将继续Kotlin邂逅设计模式系列篇中的第二篇代理模式.代理模式可以说很多初级中级开发者迷惑的设计模式.但是它确实应用很广,不用多说大家非常熟悉的Retrofit框架,内部使 ...

  4. Kotin 的代理和委托

    代理和委托--大头儿子和小头爸爸的洗碗案例 委托,把自己不干的事情交给别人做 代理,做别人委托的事情 kotlin中接口代理关键字:by 1.场景说明(举例) 围裙妈妈只负责做饭,不负责洗碗 小头爸爸 ...

  5. 《Kotlin 程序设计》第五章 Kotlin 面向对象编程(OOP)

    第五章 Kotlin 面向对象编程(OOP) 正式上架:<Kotlin极简教程>Official on shelves: Kotlin Programming minimalist tut ...

  6. 代理、委托、钩子与打桩

    代理.委托.钩子与打桩 代理 委托 钩子 广义的钩子 打桩 代理   代理(proxy)指的是在需要使用某个事物时,使用另一个事物来代替原本需要的该事物.具体来说,若原本需要某个类的方法,而现在创建了 ...

  7. 代理、委托、打桩的区别

    文章目录 代理 委托 委托与代理的区别 打桩 打桩与代理的区别 代理   代理(proxy):被代理类写好一套 API 的实现对外开放使用,代理类在被代理类的 API 的基础上再封装一层,形成一套与被 ...

  8. php 类定义抽象方法吗,PHP面向对象:接口与抽象方法

    简明现代魔法 -> PHP服务器脚本 -> PHP面向对象:接口与抽象方法 PHP面向对象:接口与抽象方法 2010-07-01 接口(interface)是抽象方法和静态常量定义的集合. ...

  9. Python面向对象之接口类(抽象类)

    Python面向对象之接口类(抽象类):就是制定一个规范.比如定义了一个接口类(抽象类)(他们是不可以进行实例化的,这就是他为什么是制定一个规范的原因). 他的定义是需要abc模块,要变的就是他的方法 ...

最新文章

  1. 关闭Mycelipse的拼写检查
  2. bean validation校验方法参数_项目启动时首先校验Spring Boot配置参数
  3. 石头剪刀布python代码_python实现石头剪刀布程序
  4. 纯手工打造简单分布式爬虫(Python)
  5. 换手机的等等!什么时候能用上1000元级5G手机?中国移动公布时间表
  6. 【最短路径问题笔记】SPFA算法及负环的判断
  7. 学习JSP大学实用教程
  8. 资产管理(记账系统)03
  9. c++和opencv小知识:openCV中convertTo的用法
  10. 将ip电话注册到服务器上,华为IP电话配置步骤.doc
  11. 2011新版工业技术 中文核心期刊目录总览
  12. 计算机组装配置兼容,电脑组装时怎么选择配置主板
  13. 利用Python下载并解压压缩文件
  14. python爬虫之帅哥图片爬取
  15. 刚挣钱的程序猿同学该怎样花钱?
  16. 计算机界的“武林秘籍”——经典教材推荐
  17. AODV=DSR+DSDV
  18. 第一单元----(4)认识编译器 源代码和可执行程序的关系
  19. FinallShell 离线激活步骤,适用MAC/WIN
  20. 如何屏蔽百度右侧的广告

热门文章

  1. python经典程序练习题-99道经典练习题助你全面掌握python基础知识,附技巧答案...
  2. python自学平台-怎么自学python,大概要多久?
  3. 手机版的python-手机版python
  4. python输入输出-python 输入输出 - 刘江的python教程
  5. python基本语法语句-Python基本语句
  6. 用python绘制漂亮的图形-用Python画一些漂亮图形--Quora代码赏析
  7. python while循环语句-Python中的while循环语句怎么用?
  8. python菜鸟基础教程-python基础菜鸟教程,Python的基础语法
  9. python绘制3d图形-Python基于matplotlib实现绘制三维图形功能示例
  10. python读取excelsheet-一文看懂用Python读取Excel数据