Go interfaces are implemented implicitly. This combines the convenience of [duck typing](https://stackoverflow.com/questions/4205130/what-is-duck-typing) with the guarantees of Go's strong typing.
The theory behind interfaces in Go is simple, but in practice, I've found it's one of the designs that people (especially those coming from inheritance-based languages, like PHP or C#) often take the longest to grasp. If you're used to explicitly typing `implements Foo`, at the end of your classes, Go's approach is likely to