Kotlin与Java可见性修饰符对比

1、Java

类中成员修饰符 同一类中可访问 同一包中可访问 不同包中可访问 子类中可访问
public
protected ×
(default) × ×
private × × ×

2、Kotlin

包中成员修饰符 同一文件中可访问 同一模块中可访问 不同模块中可访问
public
internal ×
protected  不适用于顶层声明  
private × ×
  • 如果你不指定任何可见性修饰符,默认为 public,这意味着你的声明将随处可见;
  • 如果你声明为 private,它只会在声明它的文件内可见;
  • 如果你声明为 internal,它会在相同模块内随处可见;
  • protected 不适用于顶层声明。
类中成员修饰符 同一类中可访问 同一模块中可访问 不同模块中可访问 子类中可访问
public
internal ×
protected × ×
private × × ×
  • private 意味着只在这个类内部(包含其所有成员)可见;
  • protected—— 和 private一样 + 在子类中可见。
  • internal —— 能见到类声明的 本模块内 的任何客户端都可见其 internal 成员;
  • public —— 能见到类声明的任何客户端都可见其 public 成员。
原文地址:https://www.cnblogs.com/diyishijian/p/13748610.html