侵入式接口:需要显式地创建一个类去实现一个接口。
非侵入式接口:不需要显式地创建一个类去实现一个接口。
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非侵入式接口
package main
import "fmt"
type People interface {
getSex()
}
type Man struct {
}
func (m Man) getSex() int {
return 0
}
func main() {
var m Man
fmt.Println("sex:", m.getSex())
}
想实现一个接口,直接实现接口包含的方法就可以了,不用太操心哪个方法属于哪个接口。