GOLANG多态的简单实现

  • //多态的特征是通过接口来实现的
  • //多态形式之一:多态参数
package main
import(
"fmt"
_"sort"
_"math/rand"
)
//多态的特征是通过接口来实现的
//多态形式之一:多态参数
type Usb interface{
start()
stop()
} type Phone struct{
Name string
}
type Camera struct{
Name string
} func (p Phone) start(){
fmt.Println(p.Name,"开始工作了")
}
func (p Phone) stop(){
fmt.Println(p.Name,"停止工作了")
}
func (c Camera) start(){
fmt.Println(c.Name,"开始工作了")
}
func (c Camera) stop(){
fmt.Println(c.Name,"停止工作了")
}
type Computer struct{
Name string
}
func (com Computer) working(usb Usb){ //usb变量会根据传入的实际参数,来判断到底是phone还是camera
// 通过usb接口变量来调用start和stop方法
usb.start()
usb.stop()
} func main(){
var pc Computer = Computer{"dell_R430"}
var phone Phone = Phone{"iphone_XS"}
var camera Camera = Camera{"TCL_2357R"}
pc.working(phone)
pc.working(camera)
}

代码在终端运行结果为:

GOLANG多态的特征是通过接口来实现的 GOLANG多态形式之一:多态参数的更多相关文章

  1. Golang面向API编程-interface(接口)

    Golang面向API编程-interface(接口) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Golang并不是一种典型的面向对象编程(Object Oriented Pr ...

  2. Java修炼——接口详解_接口的特征_使用接口的意义

    接口中可以包含的内容: 抽象法和非抽象方法(jdk1.8,必须使用default的关键字),属性(public static final)常量. 接口和类的关系 1.(继承了接口)类必须去实现接口中的 ...

  3. hbase rest api接口链接管理【golang语言版】

    # go-hbase-resthbase rest api接口链接管理[golang语言版]关于hbase的rest接口的详细信息可以到官网查看[http://hbase.apache.org/boo ...

  4. golang 结构体中的匿名接口

    golang 结构体中的匿名接口 代码示例 golang 中,可以给结构体增加匿名field,可参考 unknwon 大神的书. 匿名字段和内嵌结构体 但,golang同时也可以给结构体定义一个匿名i ...

  5. Golang基础(8):go interface接口

    一:接口概要 接口是一种重要的类型,他是一组确定的方法集合. 一个接口变量可以存储任何实现了接口方法的具体值.一个重要的例子就是io.Reader和io.Writer type Reader inte ...

  6. golang学习笔记9 beego nginx 部署 nginx 反向代理 golang web

    golang学习笔记9 beego nginx 部署 nginx 反向代理 golang web Nginx 部署 - beego: 简约 & 强大并存的 Go 应用框架https://bee ...

  7. No2_1.接口继承多态_Java学习笔记_接口

    接口.继承与多态 1.继承和多态是面向对象开发语言中的重要一个环节,使用得当,可以将整个程序的架构变得非常有弹性,减少代码冗余: 2.继承:复用定义好的类: 3.多态:可以动态调整对象的调用,降低对象 ...

  8. 继承(extends), 多态 , 抽象(abstract)接口() 易混难点解析

    特性 java是单继承的,一个类直接继承的父类只能有唯一的一个 java中父类可以有多个子类 Object是所有类的父类,一个类没有父类则默认继承Object; 继承中的重写 子类重写方法访问权限不能 ...

  9. caffe的python接口学习(8):caffemodel中的参数及特征的抽取

    如果用公式  y=f(wx+b) 来表示整个运算过程的话,那么w和b就是我们需要训练的东西,w称为权值,在cnn中也可以叫做卷积核(filter),b是偏置项.f是激活函数,有sigmoid.relu ...

随机推荐

  1. 一个小故事,玩转Python-while循环

    无论是传统编程场景还是当下火爆的人工智能应用场景,循环的应用都是必不可少的,上一篇文章中阐述了如何使用for循环来进行编程,这篇文章将会由一个小朋友经常听的故事来讲Python编程中的while循环. ...

  2. 简单实现react中虚拟DOM渲染

    /** * @method createElement * @param type {string} * @param props {Object} * @param children {string ...

  3. 纯css实现表单输入验证

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. QFramework 使用指南 2020 (四):脚本生成(2)ViewController 与 ViewController 嵌套绑定

    在上一篇,我们学习了,脚本生成的基本使用. 在这一篇,我们试着深入,聊聊脚本生成给我们带来的便利. 脚本生成的便利 首先,我们要知道,在 Unity 的游戏世界中都是以 GameObject 为单位的 ...

  5. Java工程师学习指南第2部分:JavaWeb技术世界

    本文整理了微信公众号[Java技术江湖]发表和转载过的Java Web优质文章,想看到更多Java技术文章,就赶紧关注吧. IDEA中的Maven实战 老师,免费版的IDEA为啥不能使用Tomcat? ...

  6. JAVA数据结构和算法 3-简单排序

    排序中的两种基本操作是比较和交换.在插入排序中还有移动. 冒泡排序:两两比较相邻元素,如果较大数位于较小数前面,则交换: 每一趟遍历将一个最大的数移到序列末尾,共遍历N-1趟. 如果执行完一趟之后没有 ...

  7. Spring mybatis源码篇章-Mybatis的XML文件加载

    通过阅读源码对实现机制进行了解有利于陶冶情操,承接前文Spring mybatis源码篇章-Mybatis主文件加载 前话 前文主要讲解了Mybatis的主文件加载方式,本文则分析不使用主文件加载方式 ...

  8. [转]Mybatis之TypeHandler使用教程

    Mybatis之TypeHandler使用教程 https://blog.csdn.net/jokemqc/article/details/81326109 深入浅出Mybatis系列(五)---Ty ...

  9. Spark Scala当中reduce的用法和例子

    [学习笔记] reduce将RDD中元素前两个传给输入函数,产生一个新的return值,将新产生的return值与RDD中下一个元素(即第三个元素)组成两个元素,再被传给输入函数,这样递归运作,直到最 ...

  10. java开源APM概要

      候选APM naver/pinpoint(github上2148个star) 韩国的一个公司开源的,有待评估使用情况,就是整体还不是JDK8,有些还是有点费劲,技术上采用agent的方式,对jav ...