Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗ktOpIhPr 38 of 123 menu
◀ ▶

private при наследовании в Kotlin

Ключевое слово private скрывает член только внутри объявившего класса. Потомок не видит приватное свойство родителя - обращение this.name в Employee к полю User вызывает ошибку компиляции:

open class User { private var name: String = "" open fun setName(name: String) { this.name = name } fun getName(): String { return this.name } } class Employee : User() { override fun setName(name: String) { if (name.isNotEmpty()) { this.name = name // ошибка } } }

Приватный метод родителя тоже недоступен в потомке:

open class User { private fun validate(value: String): Boolean { return value.isNotEmpty() } } class Employee : User() { fun check(value: String): Boolean { return validate(value) // ошибка } }

Публичные методы родителя по-прежнему можно вызывать у объекта потомка. Ограничение касается прямого доступа к private.

Попробуйте в классе Employee воспользоваться приватным методом родителя.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить