刚开始学Golang,之前学过Java。在学到接口interface时,有一点疑惑,希望大佬解答;
与Java不同的是,Golang中的接口实现都是隐式的,不用手动指定实现哪个接口。假如有这么一个情况:
有两个接口的方法签名都是一样的,两个实现结构体都实现了接口中的方法,我们暂时不使用这些方法,就只是看这段代码,Asian到底是实现了Dog还是实现了Human,如果都实现了,Asian实现Dog显然是不可接受的。
在Java中都是显式的实现接口 `implements` ,Go这里的设计真的合理吗?
还是说我的理解有问题,希望大佬解答
与Java不同的是,Golang中的接口实现都是隐式的,不用手动指定实现哪个接口。假如有这么一个情况:
有两个接口的方法签名都是一样的,两个实现结构体都实现了接口中的方法,我们暂时不使用这些方法,就只是看这段代码,Asian到底是实现了Dog还是实现了Human,如果都实现了,Asian实现Dog显然是不可接受的。
在Java中都是显式的实现接口 `implements` ,Go这里的设计真的合理吗?
还是说我的理解有问题,希望大佬解答