MST

星途 面试题库

面试题:Go语言接口的嵌套与多态应用

定义一个基础接口`Animal`,包含`Eat`方法。再定义一个嵌套了`Animal`接口的`Pet`接口,增加`Play`方法。接着定义`Dog`结构体实现`Pet`接口,要求在实现`Pet`接口时复用`Animal`接口已有的方法逻辑,最后编写代码展示如何通过接口类型变量调用这些方法。
15.2万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import "fmt"

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

// Pet 嵌套 Animal 接口的接口
type Pet interface {
	Animal
	Play()
}

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

// Eat 实现 Animal 接口的 Eat 方法
func (d Dog) Eat() {
	fmt.Println("Dog is eating")
}

// Play 实现 Pet 接口新增的 Play 方法
func (d Dog) Play() {
	fmt.Println("Dog is playing")
}

func main() {
	var pet Pet
	pet = Dog{}
	pet.Eat()
	pet.Play()
}

上述代码首先定义了Animal接口及其Eat方法,接着Pet接口嵌套了Animal接口并新增Play方法。Dog结构体实现了Pet接口,复用了Animal接口的Eat方法逻辑。在main函数中,通过接口类型变量pet调用了EatPlay方法。