What is the difference between final Class and Class?
final class A {
}
class B {
}
Hoping I can boil down the other answers into this SSCCE that helped me:
open class Open {} // Anyone can see, anything can subclass
public class Normal {} // Anyone can see, internal can subclass
internal class Internal {} // Internal can see, internal can subclass
public final class Final {} // Anyone can see, nothing can subclass
In your project/module:
class SubOpen: Open {} // OK
class SubNormal: Normal {} // OK
class SubInternal: Internal {} // OK
class SubFinal: Final {} // Error: Can't subclass
In some other project/module:
class SubOpen: Open {} // OK
class SubNormal: Normal {} // Error: Can't subclass
class SubInternal: Internal {} // Error: `Internal` type not found
class SubFinal: Final {} // Error: Can't subclass