main.go
// Go语言·面向对象编程应用·接口
package main
// 包的本质是创建不同的文件夹
// go的每一个文件都是属于一个包的
// go以包的形式管理项目和文件目录。
// import "包的路径"
import (
model "day23/model"
_"fmt"
)
var content string = `
————————————————Go语言·面向对象编程应用————————————————————
一、接口 interface
`
func main() {
pc := &model.Computer{}
phone := &model.Phone{}
camera := &model.Camera{}
pc.Working(phone)
pc.Working(camera)
}
interface.go
package model
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接口声明的所有方法。
func (c *Computer) Working(usb Usb) {
// 通过usb接口变量来调用Start和Stop方法
usb.Start()
usb.Stop()
}
网友评论