📢 *Visibility modifiers 이란?
→ Visibility modifiers란 class, interface, fun, property, object, constructor 등 객체의 범위를 지정해주는 키워드 이다.❗ 주의사항
→ **로컬 변수, 로컬 함수, 로컬 클래스는 Visibility Modifier를 가질 수 없다.*Visibility modifiers : 가시성 수정자 혹은 접근 제한자(Access Modifier)
open class Outer {
private val a = 1
protected open val b = 2
internal open val c = 3
val d = 4 // default 값은 public 이다.
protected class Nested {
public val e: Int = 5
}
}
class Subclass : Outer() {
// a 접근 불가
// b, c, d 접근 가능
// Nested, e 접근 가능
override val b = 5 // b 는 protected 이므로 접근 가능
override val c = 7 // c 는 internal 이므로 접근 가능
}
class Unrelated(o: Outer) {
// o.a, o.b 접근 불가
// o.c, o.d 접근 가능 (같은 모듈)
// Outer.Nested, Nested::e 접근 불가
}