面向对象编程三大特征4

Posted green-frog-2019

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象编程三大特征4相关的知识,希望对你有一定的参考价值。

接口(interface)

按顺序,我们应该讲解多态,但是在讲解多态前,我们需要讲解接口(interface) ,因为在Golang中 多态特性主要是通过接口来体现的。

技术图片

接口快速入门:

这样的设计需求在Golang编程中也是会大量存在的,我曾经说过,一个程序就是一个世界,在现实世界存在的情况,在程序中也会出现。我们用程序来模拟一下前面的应用场景。

案例:

package main
import (
  "fmt"
)

//声明一个接口
type Usb interface
  //声明了两个没有实现的方法
  Start()
  Stop()

type Phone struct

//让Phone 实现 Usb接口的方法
func (p Phone) Start()
  fmt.Println("手机开始工作...")

func (p Phone) Stop()
  fmt.Println("手机停止工作...")

type Camera struct

//让camera 实现了Usb接口的方法
func (c Camera) Start()
  fmt.Println("相机开始工作...")

func (c Camera) Stop()
  fmt.Println("相机停止工作...")

//计算机
type Computer struct

//编写一个方法Working 这个方法接收Usb接口类型的变量
//只要是实现了 Usb接口 (所谓实现Usb接口就是指实现了Usb接口声明的所有方法)
func (c Computer) Working(usb Usb) //usb 变量会根据传入的实参,来判断到底是Phone,还是Camera
  //通过usb接口变量来调用Start和Stop方法
  usb.Start()
  usb.Stop()


func main()
  //测试
  //先创建结构体变量
  computer := Computer
  phone := Phone
  camera := Camera

  //关键点
  computer.Working(phone)
  computer.Working(camera)

技术图片

说明: 上面的代码就是一个接口编程的快速入门案例

Go接口特点和语法说明:

基本介绍:

  interface 类型可以定义一组方法,但是这些不需要实现。并且interface 不能包含任何变量。到某个自定义类型(比如结构体Phone) 要使用的时候,在根据具体情况把这些方法写出来。

 

基本语法:

type 接口名 interface

  method1(参数列表) 返回值列表
  method2(参数列表) 返回值列表
  ...

实现接口所有方法:

func (t 自定义类型) method1(参数列表) 返回值列表
  //方法实现

func (t 自定义类型) method2(参数列表) 返回值列表
  //方法实现

//...

 

小结说明:

1)接口里的所有方法都没有方法体,即接口的方法都是没有实现的方法。接口体现了程序设计的多态和高内聚低耦合的思想。

2)Golang中的接口,不需要显式的实现。只要一个变量,含有接口类型中的所有方法,那么这个变量就实现这个接口。因此,Golang中没有implement这样的关键字


接口的应用场景介绍:

对初学者来说,理解接口的概念不算太难,难的是不知道什么时候使用接口,下面我例举几个应用场景:

1.说现在美国要制造轰炸机,武装直升机,专家只需把飞机需要的功能/规格定下来即可,然后让别的人具体实现就可。

技术图片

2.说现在有一个项目经理,管理三个程序员,开发一个软件,为了控制和管理软件,项目经理可以定义一些接口,然后由程序员具体实现。

技术图片

 

以上是关于面向对象编程三大特征4的主要内容,如果未能解决你的问题,请参考以下文章

Java面向对象编程三大特征 - 封装

Python入门-6面向对象编程:07面向对象三大特征(封装继承多态)-继承

哪些是面向对象程序设计的三大特征

Java 大厂面试必刷题 Day1:何为面向对象编程的思想?面向对象三大特征是什么?

Java 大厂面试必刷题 Day1:何为面向对象编程的思想?面向对象三大特征是什么?

面向对象三大特征是啥?