6.8. 第6节:多态

未匹配的标注
本文档最新版为 2023,旧版本可能放弃维护,推荐阅读最新版!

接口有什么好处呢?实现多态。

所谓多态指的是多种表现形式,如下图所示:

第6节:多态
该拖拉机既可以扫地又可以当风扇。功能非常强大。

使用接口实现多态的方式如下:

package main

import "fmt"

//先定义接口  在根据接口实现功能
type Humaner1 interface {
    //方法  方法声明
    SayHello()
    //Result(int, int) int
}

type Student1 struct {
    name  string
    age   int
    sex   string
    score int
}

type Teacher1 struct {
    name    string
    age     int
    sex     string
    subject string
}

func (s *Student1) SayHello() {
    fmt.Printf("大家好,我是%s,我今年%d岁,我是%s生,我的成绩是%d分\n",
        s.name, s.age, s.sex, s.score)
}

func (t *Teacher1) SayHello() {
    fmt.Printf("大家好,我是%s,我今年%d岁,我是%s生,我的学科是%s\n",
        t.name, t.age, t.sex, t.subject)
}

//多态的实现
//将接口作为函数参数  实现多态
func SayHi(h Humaner1){
    h.SayHello()
}

func main() {

    stu:=Student1{"小明",18,"男",99}
    //调用多态函数
    SayHi(&stu)

    //tea:=Teacher1{"法师",31,"男","go"}
    //SayHi(&tea)

}

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 1
发起讨论 只看当前版本


cqkd6381
这也就是 PHP 中的类型约束
0 个点赞 | 0 个回复 | 分享