golang中interface的具体使用方法
2023-12-26 18:57:26
?在 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
方法。然后,定义了两个结构体 Rectangle
和 Circle
,它们分别实现了 Shape
接口的 Area
方法。最后,在 main
函数中创建了一个矩形对象和一个圆形对象,通过 CalculateArea
函数统一计算它们的面积,展示了接口的多态性。这样,不同类型的对象都可以通过相同的接口进行操作。
文章来源:https://blog.csdn.net/qq_53962537/article/details/135227814
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!