ilya.gorbunov
11/27/2016, 2:36 PMAny. And those implementations provide identity equality and identity hashcode.
On the other hand data classes have their hashCode and equals implemented automatically to provide structural equality of their properties. And pretty formatted toString comes as a bonus.