Kotlin中私有和受保护的可见性修饰符之间有什么区别?

问题描述 投票:0回答:6

我刚开始学习kotlin并且与受保护的访问修饰符混淆了我怀疑kotlin中私有和受保护访问修饰符之间的确切区别是什么。我在谷歌搜索但没有得到任何满意的答案。

android kotlin access-modifiers
6个回答
1
投票

正如官方documentatin所说:

private仅表示在此类中可见(包括其所有成员);

protected - 与private相同+在子类中也可见;


0
投票

来自Kotlin doc

private - 表示仅在此类中可见(包括其所有成员);

protected - 与子类中的private + visible相同;

通过可见,这意味着可以访问或使用字段或方法。


0
投票

与大多数OOP语言一样,Kotlin中有几个修饰符:

public - 可以从项目的任何地方到达类,功能或财产。默认情况下,在Kotlin中,类,属性或函数是公共的

protected - 只能通过当前的类子类访问类,函数或属性

private - 只能在当前班级中访问类,功能或属性

internal - 可以从当前模块中的任何位置访问类,函数或属性


0
投票

查看this以获取详细说明。

如果您想了解受保护的概念,您需要对子类和继承有基本的了解。

可以从子类中看到具有受保护访问说明符的变量或函数。但私人将绑定课堂范围。

考虑这个基本代码:



    open class Outer {
        private val a = 1 // visible only for instance of class Outer
        protected open val b = 2 // visible for instance of Outer and another subclass which inherits Outer.
        val d = 4  // public by default
        protected class Nested {
            public val e: Int = 5
        }
    }

    public class Subclass : Outer() {
        // a is not visible
        // b, d are visible
        // Nested and e are visible

        override val b = 5   // 'b' is protected
    }


注意:上面的代码来自docs。


0
投票

类和接口

对于在类中声明的成员:

private表示仅在此类中可见(包括其所有成员);

protected - 与子类中的private + visible相同;

internal - 此模块中看到声明类的任何客户端都会看到其内部成员;

public - 任何看到声明类的客户都会看到其公共成员。

KotlinLang


0
投票

As it relates to class members:

  • 标记为protected的项目在类和子类中可见
  • 标有private的物品在课堂上可见

As it relates to top-level declarations:

  • protected不适用)
  • 标记为private的项目在同一文件中可见
© www.soinside.com 2019 - 2024. All rights reserved.