Junior — Middle
Hoe verschillen de toegangsmutators in Java en Kotlin?
sobes.tech AI
Antwoord van AI
In Java en Kotlin hebben toegangsmutators vergelijkbare doelen, maar verschillen in set en gedrag:
-
Java:
public— toegang vanaf elke plek.protected— toegang binnen het pakket en in subclasses.- (package-private) — alleen toegang binnen het pakket (als geen modifier is opgegeven).
private— alleen toegang binnen de klasse.
-
Kotlin:
public(standaard) — toegang vanaf elke plek.internal— toegang binnen de module (bijvoorbeeld binnen één Gradle-module).protected— toegang in subclasses, maar alleen binnen hetzelfde bestand (in tegenstelling tot Java, waar protected toegang tot het pakket toestaat).private— toegang binnen de klasse of het bestand (indien op bestandniveau gedeclareerd).
Het belangrijkste verschil is dat in Kotlin de modifier internal bestaat, die de zichtbaarheid beperkt tot de module, en dat protected in Kotlin geen toegang geeft binnen het pakket, maar alleen in subclasses. In Java bestaat internal niet, en geeft protected toegang zowel in het pakket als in subclasses.