I wonder why `class` only implies `final` but `ove...
# getting-started
l
I wonder why
class
only implies
final
but
override
only implies
open
? Should "overridability" be `open`'s at all? I remember this is the only place where
final
is used.
Copy code
class A // final

interface B {
    fun foo()
}

class C : B {
    override fun foo() // final
}

open class D : B {
    override fun foo() // OPEN
}
if it's final by default then
D.foo
should also just finalize overridability UNLESS you mark it
open
. Having both
open
and
final
is so inconsistent.