1. 程式人生 > >go語言非侵入式介面

go語言非侵入式介面

侵入式介面:需要顯式地建立一個類去實現一個介面。

非侵入式介面:不需要顯式地建立一個類去實現一個介面。

C++侵入式介面:

#include <iostream>

enum SEX { 
	MAIL,
	FEMAIL
 };

class PeopleInterface
{
public:
	PeopleInterface(){};
	virtual ~PeopleInterface(){};

	virtual int getSex() = 0;
};

class Man : public PeopleInterface
{
public:
	Man(){};
	~Man(){};

	int getSex() {return MAIL;}
};

int main(int argc, char const *argv[])
{
	Man m;
	std::cout<<"sex:"<<m.getSex()<<std::endl;
	return 0;
}

go非侵入式介面
packagemain
import"fmt"
typePeopleinterface{
getSex()
}
typeManstruct{
}
func(mMan)getSex()int{
return0
}
funcmain(){
varmMan
fmt.Println("sex:",m.getSex())
}

想實現一個介面,直接實現介面包含的方法就可以了,不用太操心哪個方法屬於哪個介面。