This tutorial is really good! is there any recommended tutorial can you suggest for MVI?
thanks!
Thanks for doing this! It reminds me of the C++ days where you had to turn ON polymorphism with the key word āvirtualā but in Java you turned it OFF with the key word final.
C++ had the concept of āinlineā which is a lot like how Java does final static values. At the compiler level it just copies that code āinlineā. A common bug around that was to not do a ācleanā build and an old .class file (Java) would have the OLD static final value.
I remember reading about how the Math package in Java was made final for large speed improvements.
Sealed Classes makes me think I get my cake and can also eat it. 
Sadly, I think nobody talks anymore about VTables and the cost of late binding. Objective C has a really cool feature where you can change the VTable array to put your own behavior in EVEN if it is a legacy API call which is pretty neat. (Method Swizzling)
Interesting how the Kotlin authors tried to go for this ideal āsweet spotā. I would think this optimizes many things including compile time, run time optimizations as well as very maintainable code base.
thanks , for the article
but I have a question. I did everything step-by-step in this article.
I donāt understend the term " limited hierarchies". Since i use āopenā word, for any class i want, I can do many subclasses for a sealed classā children too.
open class Crypto : AcceptedCurrency(){
override val valueInDollars: Double = 3000.5
}
class ANewClass: Crypto(){
}
I expect an error with ANewClass declaration here, but it looks ok for the IDE ā¦
Thanks for the question, @alexkoto! The word ālimitedā in this case means finite or small, as in finite or small in number. As in, there will only a known small number of subclasses.
This tutorial is more than six months old so questions are no longer supported at the moment for it. Thank you!