MST

星途 面试题库

面试题:Go语言中接口继承与扩展的基础实现

在Go语言中,假设我们有一个基础接口`Animal`,它有一个`Speak`方法。现在创建一个新接口`Dog`,`Dog`继承自`Animal`并新增一个`Run`方法。请编写这两个接口的定义,并创建一个结构体`Labrador`实现`Dog`接口,同时编写一个函数,接受`Dog`接口类型作为参数并调用`Speak`和`Run`方法。
44.7万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import "fmt"

// Animal 基础接口
type Animal interface {
    Speak() string
}

// Dog 接口继承自Animal并新增Run方法
type Dog interface {
    Animal
    Run() string
}

// Labrador 结构体实现Dog接口
type Labrador struct {
    Name string
}

func (l Labrador) Speak() string {
    return fmt.Sprintf("%s says woof", l.Name)
}

func (l Labrador) Run() string {
    return fmt.Sprintf("%s is running", l.Name)
}

// 接受Dog接口类型参数并调用Speak和Run方法的函数
func DoActions(d Dog) {
    fmt.Println(d.Speak())
    fmt.Println(d.Run())
}

你可以这样调用:

func main() {
    lab := Labrador{Name: "Buddy"}
    DoActions(lab)
}