|
|
|
|
|
by bad_user
3388 days ago
|
|
> ...whereas in Java you would have to change (and have access to) the implementation of one of the classes or interfaces that String inherits from. Or, you know, just define a plain function. > which allow you to add new methods to any class without needing to modify the original class No, those aren't methods, because they don't do dynamic dispatch. This is actually a problem in case you have an inheritance hierarchy and you want different behavior for a ChildClass extending a BaseClass. Speaking of Scala, it's the only one out of the ones mentioned here that can do that based on the compile-time time, by letting you define the same extension for both ChildClass and BaseClass, but with different priorities, such that the compiler can disambiguate. |
|
My comment was about extension methods and how the name refers to different features in Java and Kotlin, so I meant "...whereas in Java [if you wanted to use the Java feature to do the same thing the Kotlin feature by the same name does] you would have to ...".
> those aren't methods
I know, they're only sugar for static methods, as I said.