groovy has the same concepts... they have been implemented only 10 to 5 years ago more or less.
If you want to extend a class behaviour you have several options: AST trasformations if you have access to the source code. Metaprogramming, Categories, Category annotation, Mixins or Module extensions otherwise.
Data classes for having automatically tostring equals or hashcode? you have the Canonical annotation... I could go on forever. Groovy has more than 13 years and it's full of features you cannot even imagine and a big ecosystem with a lot of important JVM frameworks (Grails, Spock, Geb, Gradle etc...).
I appreciate you are curious about Groovy and you try to understand the differences from your favourite language (I suppose).
I had only a brief look at Kotlin and I am not interested in it so I cannot really tell you all the differences. I suggest you to try for a bit groovy if you really wanna know. If you have questions I may help to understand.