[kotlin] 코틀린의 protected 접근 제한자에 대해 설명해주세요.

아래는 protected 접근 제한자의 예시입니다.

open class Animal {
    protected fun makeSound() {
        println("Animal sound")
    }
}

class Dog : Animal() {
    fun sound() {
        makeSound() // 하위 클래스에서 protected 멤버에 접근 가능
    }
}

class Cat {
    fun sound(animal: Animal) {
        animal.makeSound() // 다른 클래스에서는 접근 불가
    }
}

위의 예시에서, makeSound 메서드는 Animal 클래스에서 protected로 선언되었기 때문에 하위 클래스인 Dog 클래스에서 접근할 수 있지만, 다른 클래스인 Cat 클래스에서는 접근할 수 없습니다.

이처럼, protected 접근 제한자는 상속 관계에서 멤버의 접근을 제한하여 코드의 안정성을 유지하는 데 도움이 됩니다.

더 자세한 내용은 코틀린 공식 문서를 참고하세요: 코틀린 공식 문서 - 접근 제한자