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语言中怎么实现?

阅读 6.5k
2 个回答

用组合或者使用interface实现

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题