new fun data kotlin keyword public

fun - struct kotlin



¿Cuál es la diferencia entre ''abierto'' y ''público'' en Kotlin? (3)

La palabra clave open significa "abrir para extensión":

La anotación open en una clase es lo opuesto a la final de Java: permite a otros heredar de esta clase. De forma predeterminada , todas las clases en Kotlin son final , lo que corresponde a Effective Java, Ítem 17: Diseño y documento para herencia o bien lo prohíbe .

También debe ser explícito sobre los métodos que desea anular, también marcados con open :

open class Base { open fun v() {} fun nv() {} }

La palabra clave public actúa como un modificador de visibilidad que puede aplicarse a clases, funciones, etc. Tenga en cuenta que public es el valor predeterminado si no se especifica nada más explícitamente:

Si no especifica ningún modificador de visibilidad, se usa public forma predeterminada, lo que significa que sus declaraciones serán visibles en todas partes

Soy nuevo en Kotlin y estoy confundido entre palabras clave open y public . ¿Podría alguien decirme la diferencia entre esas palabras clave?


abierto es opuesto a final en java. Si la clase no está ''abierta'', no se puede heredar.

class First{} class Second:First(){} // Not allowed. Since ''First'' is private by default.

No te confundas con lo abierto y lo público. El público es un modificador de visibilidad.

class Third{} // By default this is public private class Fourth{} class Fifth{ val third = Third() // No issues val fourth = Fourth() // Can''t access because Fourth is private }


class A { ... } en Java es igual a open class A { ... } en Kotlin.
final class B { ... } en Java es igual a la class B { ...} en Kotlin.

No está relacionado con el public .

En Kotlin, todo sin modificadores de acceso es public por defecto. Puede decir explícitamente public en la definición, pero no es necesario en Kotlin.

Asi que,

public class A { ... }

y

class A { ... }

Son lo mismo en Kotlin.