java 中 public private protected (firendly) 四种:
他们之间的差别 写三个类 分别在两个包中 检验(用编译器会更加直观,更加明了),下面是我写的 :
注:类中的属性 和 方法在访问权限上一样,这里都写了属性
package1
public class Quanxian {
public String pub; //public
private String pri; //private
protected String pro; //protected
String fir; //firendly
}
class JiChenQuanxian extends Quanxian{
//写了一函数 可以super 来调用父类的属性
public void fun(){
System.out.println(super.pub); // ok
System.out.println(super.pro); // ok
System.out.println(super.fir); //ok
/* System.out.println(super.pri); // no 此句话 是错误 的 */
}
在package1中我们了解了 ,什么权限下得属性方法可以继承
package2
import package1.Quanxian;
public class Quanxian2 {
private Quanxian quan;
/* package1.JiChenQuanxian 错误 因为JiChenQuanxian 类没生命为 public 所以不同包间不能访问 */
public void fun(){
System.out.println(quan.pub); //ok
/* System.out.println(quan.pri); //no private 属性 只有在 类中 私人使用 */
/* System.out.println(quan.fir); //no firendly属性 只有在 同一包得不同类间可访问 */
/* System.out.println(quan.pro); //no private 属性 只有在 同一包得不同类间可访问 此时跟firendlys 属性一样 */
}
}
}