default 情况下:

等同于 final,需要声明 open 才可扩展,这是和 Java 相反的扩展约束策略

等同于 public 访问级别,和 Java 默认的包可见不同

正因为此,Kotlin 中 final 和 public 无需显示声明

protected 是类可见外加子类可见,而 Java 则是包可见外加子类可见

private 修饰的内部类成员无法被外部类访问,和 Java 不同

internal 修饰符是模块可见,和 Java 默认的包可见有相似之处,也有区别

public 是 所有都可以 类 与 类实例

protected 只有 类 与子类 可见 自身与子类实例无法访问

private 只有类自身可见 子类 不可见 自身与子类实例无法访问

open 可以被重写

kotlin

更多推荐