MST

星途 面试题库

面试题:Go语言中接口定义及多态实现基础

请用Go语言定义一个包含`Run`方法的接口`Runner`,然后定义两个结构体`Dog`和`Cat`,分别实现该接口的`Run`方法,并在主函数中展示如何通过接口类型的切片来调用不同结构体实现的`Run`方法。
28.9万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import "fmt"

// 定义Runner接口
type Runner interface {
    Run()
}

// Dog结构体实现Runner接口
type Dog struct{}

func (d Dog) Run() {
    fmt.Println("Dog is running")
}

// Cat结构体实现Runner接口
type Cat struct{}

func (c Cat) Run() {
    fmt.Println("Cat is running")
}

func main() {
    // 创建接口类型的切片
    var runners []Runner
    runners = append(runners, Dog{})
    runners = append(runners, Cat{})

    // 通过接口类型的切片调用不同结构体实现的Run方法
    for _, runner := range runners {
        runner.Run()
    }
}