一看就懂: Java访问控制
发布者 : 管理员-Adler | 发布时间 : 2019-01-17 19:07:24文章号 : 30 | 阅读量 : 71+1 | AAW值(?) : 0.03 (仅供参考)
引用自<<Thinking in Java>>:
public表示紧随其后的元素对任何人都是可用的
private这个关键字表示除类型创建者和类型的内部方法之外任何人都不能访问的元素. private就像你与客户端程序员之间的一堵砖墙,如果有人试图访问private成员, 就会在编译时得到错误信息.
protected关键字与private作用相当, 差别仅在于继承的类可以访问protected成员,但是不能访问private成员.
原文
修饰符当前类同一包内 子孙类(同一包) 子孙类(不同包) 其他包
publicY Y Y Y Y
protected Y Y Y Y/N(说明) N
default Y Y Y N N
private Y N N N N
使用默认访问修饰符声明的变量和方法,对同一个包内的类是可见的。接口里的变量都隐式声明为public static final,而接口里的方法默认情况下访问权限为public。
如下例所示,变量和方法的声明可以不使用任何修饰符。
实例
String version = "1.5.1";
boolean processOrder() {
return true;
}
class A {}
class B extends A {}
class C extends B {}
C实际上是属于(孙)子类,这样一来就相当于B类继承了A类的全部方法,而C类又继承了A和B类的方法,这种操作称为多层继承。
结论:Java之中只允许多层继承,不允许多重继承,Java存在单继承局限。
class A {
publicA() {
System.out.println("this is A");
}
}
class B extends A {
publicB() {
System.out.println("this is B");
}
}
class mainmethod {
public static void main(String args[]) {
B b = new B();
}
}
实例化的时候会执行一次代码;
运行结果:
this is A
this is B