Interface in Go.
Interface permits to treat different concrete types in the same way based on what methods they have, not how they are represented or implemented.