Кстати, дизайнеры языка программирования Kotlin, судя по всему, думают также и решили сделать классы в своём языке финальными по умолчанию. Чтобы сделать наследование возможным необходимо использовать ключевое слово 'open' или 'abstract':
open class Foo {}
Мне нравится это.