JAVA
-----------------------------------------------
访问修饰符 描述
-----------------------------------------------
private 只能在本类内使用(可见)
不写修饰符 表示该成员只能在同一个包内才能互相访问
protected 也是同包内访问,区别上面的地方在于:除了同包,其他包的子类也可以访问
public 表明该成员变量和方法是共有的,能在任何情况下都能被访问
-----------------------------------------------超级分割线-----------------------------------------------
C#
-----------------------------------------------
访问修饰符 描述
-----------------------------------------------
private 跟JAVA一样,只能在本类中可以使用
protected 跟JAVA不一样,除了自己只能子类可以访问
internal 只能在当前程序集能访问
protected internal 唯一的一种组合使用的形式,在当前程序集或自己的子类访问,类似于java中的
protected public 访问不受限制。
-----------------------------------------------
特别注意:在C#中如果类内部成员(方法、属性、字段等)不写任何修饰符则默认为private;
如果类(class)的访问修饰符什么也不写默认是internal。
程序集大家可以理解成当前的项目,比如在搭建3层框架时一个解决方案下会有多个项目(表示层、业务逻辑层、数据访问层...),如果想只能在当前项目访问则可以使用internal。
*基类至少与派生类有相同的访问性。