default 情况下: 等同于 final,需要声明 open 才可扩展,这是和 Java 相反的扩展约束策略 等同于 public 访问级别,和 Java 默认的包可见不同 正因为此,Kotlin 中 final 和 public 无需显示声明 protected 是类可见外加子类可见,而 Java 则是包可见外加子类可见 private 修饰的内部类成员无法被外部类访问,和 Java 不同 internal 修饰符是模块可见,和 Java 默认的包可见有相似之处,也有区别 public 是 所有都可以 类 与 类实例 protected 只有 类 与子类 可见 自身与子类实例无法访问 private 只有类自身可见 子类 不可见 自身与子类实例无法访问 open 可以被重写