接口

发布时间 2023-12-15 15:00:44作者: 黑逍逍

接口提供了一种实现多态性的方式,使得可以通过接口来编写通用的代码,而不依赖于具体的类型。

虽然Java和Go都有接口和多态的概念,但它们的实现和使用方式有所不同,。

 

优点:

 

案例

package main

import "fmt"

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

// 定义结构体(类型)- 圆形
type Circle struct {
    Radius float64
}

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

// 定义结构体(类型)- 正方形
type Square struct {
    SideLength float64
}

// 实现接口方法 - 正方形
func (s Square) Area() float64 {
    return s.SideLength * s.SideLength
}

func main() {
    // 创建一个 Circle 类型的变量
    circle := Circle{Radius: 2.5}

    // 创建一个 Square 类型的变量
    square := Square{SideLength: 3.0}

    // 使用接口类型的变量存储 Circle 类型的变量
    var shape Shape
    shape = circle

    // 调用接口方法
    area := shape.Area()
    fmt.Println("圆的面积是:", area)

    // 使用接口类型的变量存储 Square 类型的变量
    shape = square

    // 调用接口方法
    area = shape.Area()
    fmt.Println("正方形的面积是:", area)
}