Issue
I am new to Kotlin and I am confused between open and public keywords. Could anyone please tell me the difference between those keywords?
Solution
The open keyword means “open for extension“ - i.e. it's possible to create subclasses of an open class:
The
openannotation on a class is the opposite of Java'sfinal: it allows others to inherit from this class. By default, all classes in Kotlin arefinal, which corresponds to Effective Java, Item 17: Design and document for inheritance or else prohibit it.
You also need to be explicit about methods you want to make overridable, also marked with open:
open class Base {
open fun v() {}
fun nv() {}
}
The public keyword acts as a visibility modifier that can be applied on classes, functions, member functions, etc. If a top-level class or function is public, it means it can be used from other files, including from other modules. Note that public is the default if nothing else is specified explicitly:
If you do not specify any visibility modifier,
publicis used by default, which means that your declarations will be visible everywhere
Answered By - s1m0nw1 Answer Checked By - David Goodson (PHPFixing Volunteer)
0 Comments:
Post a Comment
Note: Only a member of this blog may post a comment.