C# JAVA成员访问修饰符比较
在面向对象的访问修饰符中常用的有public ,private ,protected
C#
访问修饰符: private < protected internal < internal/protected < public
访问修饰符 | 同一个程序集(项目) | 不同的程序集 | ||
本类 | 子类(class嵌套) | 实例 | ||
public | 可以(访问) | 可以 | 可以 | 可以(实例,继承) |
protected | 可以 | 可以 | 不可以 | 可以(继承) |
internal | 可以 | 可以 | 可以 | 不可以 |
protected internal | 可以 | 可以 | 不可以 | 不可以 |
private | 可以 | 不可以 | 不可以 | 不可以 |
默认的访问修饰符:(不写的时候)
类 internal
方法、字段 private
注:程序集(Assembly)不等于命名空间(namespace)。
一个解决方案中可以有多个项目(即程序集),命名空间为逻辑划分。
JAVA
访问修饰符: private < internal/protect < public
访问修饰符 | 同一个package(项目) | 不同的package | ||
本类 | 子类(class嵌套) | 实例 | ||
public | 可以(访问) | 可以 | 可以 | 可以(实例,继承) |
protect | 可以 | 可以 | 不可以 | 可以(继承) |
default | 可以 | 可以 | 可以 | 不可以 |
private | 可以 | 不可以 | 不可以 | 不可以 |
默认访问修饰符:default(不用写)