面向对象编程三大特征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的主要内容,如果未能解决你的问题,请参考以下文章
Python入门-6面向对象编程:07面向对象三大特征(封装继承多态)-继承
Java 大厂面试必刷题 Day1:何为面向对象编程的思想?面向对象三大特征是什么?