3 ms·
From the FAQ: " Although Go has types and methods and allows an object-oriented style of programming, there is no type hierarchy. The concept of “interface” in
by BarkMore 16y ago
From the FAQ: " Although Go has types and methods and allows an object-oriented style of programming, there is no type hierarchy. The concept of “interface” in Go provides a different approach that we believe is easy to use and in some ways more general. There are also ways to embed types in other types to provide something analogous—but not identical—to subclassing. Moreover, methods in Go are more general than in C++ or Java: they can be defined for any sort of data, not just structs."
http://golang.org/doc/go_faq.html#Is_Go_an_object-oriented_language http://golang.org/doc/go_faq.html#Is_Go_an_object-oriented_l...
The lack of type hierarchy makes code easier to understand.
- jamesaguilar 16y agoAlso, an "interface" is more of an enforced duck type annotation than an interface or ABC in Java or C++ terms respectively.
- aaronblohowiak 16y agoIIRC, the duck-type mode uses implicit interface creation but you can force an explicit interface if you want (please correct me if i am wrong.)
- BarkMore 16y agoInterfaces are explicitly defined in Go as they are in Java. The difference is that you do not declare the interfaces implemented by a type. If a type has methods that match an interface, then the type implicitly implements the interface.
- aaronblohowiak 16y agoOooooh, that makes sense. Thanks for the clarification.
- stcredzero 16y agothere is no type hierarchy A type hierarchy seems to get misused almost as often as it's well used. The net benefit of it is much less than what the inventors imagined.