golang中interface的具体使用方法

 在 Go 语言中,interface 是一种特殊的类型,它定义了一组方法的集合。通过接口,你可以达到将不同类型的对象统一对待的目的,实现了多态性。接口是实现多态的关键。

package main

import "fmt"

// 定义一个接口
type Shape interface {
    Area() float64
}

// 定义一个矩形结构体
type Rectangle struct {
    Width  float64
    Height float64
}

// 定义一个圆形结构体
type Circle struct {
    Radius float64
}

// 矩形实现 Shape 接口的 Area 方法
func (r Rectangle) Area() float64 {
    return r.Width * r.Height
}

// 圆形实现 Shape 接口的 Area 方法
func (c Circle) Area() float64 {
    return 3.14 * c.Radius * c.Radius
}

// 计算任意形状的面积
func CalculateArea(s Shape) {
    fmt.Printf("Area: %f\n", s.Area())
}

func main() {
    // 创建矩形对象
    rectangle := Rectangle{Width: 5, Height: 3}

    // 创建圆形对象
    circle := Circle{Radius: 2}

    // 通过接口统一计算面积
    CalculateArea(rectangle)
    CalculateArea(circle)
}

在这个例子中,定义了一个 Shape 接口,它包含一个 Area 方法。然后,定义了两个结构体 RectangleCircle,它们分别实现了 Shape 接口的 Area 方法。最后,在 main 函数中创建了一个矩形对象和一个圆形对象,通过 CalculateArea 函数统一计算它们的面积,展示了接口的多态性。这样,不同类型的对象都可以通过相同的接口进行操作。

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值