go能实现父类指针指向子类对象吗,或者有其他方法?

例如C++中

class Fu
{
public:
    Fu(){...}
    void say(){...}
};

class Zi : public Fu
{
public:
    Zi(){...}
    void say(){...}
};

void Work(Fu **fu)
{
    cout << "" << endl;
}

int main()
{
    Fu *people1 = new Zi;
    Fu *people2 = new Zi;
    people1->say();
    people2->say();
    Work(people1);
    ...
    Work(people2);
    
    return 0;
}

这种父类指针指向子类对象和里面的Work函数在go语言中该如何实现?

又或者这样问,例如一个people类,我可以分为为很多工种类,都可以用一个people指针指向工种对象去创建对象,然后方便传入其他函数统一做各种事情,这在go语言中怎么实现?

阅读 571
评论
    2 个回答
    Jankeyfu
    • 2
    • 新人请关照

    用组合或者使用interface实现

    评论 赞赏

      组合我的理解是类型1包含多个类型2,类型3又可以包含多个类型1,或者一个结构体内嵌几个结构体可以创建这个结构体对象去调用里面的结构体的东西,但是好像还是解决不了我程序里Work函数的行为?

      评论 赞赏
        撰写回答

        登录后参与交流、获取后续更新提醒