访问权限   

Java有四种访问权限, 其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符。

  1. default:即不加任何访问修饰符,通常称为“默认访问模式“。该模式下,只允许在同一个包中进行访问。
  2. protect: 介于public 和 private 之间的一种访问修饰符,一般称之为“保护形”。被其修饰的类、属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。
  3. public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问

权限修饰符


变量/方法

public

包内外的类都可以访问

包内外的类都可以访问

private

类不可以声明为private

只允许本类访问

protected

类不可以声明为protected

本包内的类和子类可以访问

不写

本包中的类可以访问

本包中的类可以访问

(2)类中成员或方法的访问权限,

有四种:public,protected,default,private

作用域         当前类          同一package           子孙类                其他package
 public              √                    √                       √                            √
 protected        √                   √                       √                             ×
 default            √                    √                       ×                            ×
 private            √                    ×                       ×                            ×

(3)抽象类和接口中成员或方法访问权限 
    关于抽象类中成员访问权限,其基本上继承了类的特性,但由于抽象类之所以为抽象类,是因为它是作为父类来使用的,是等待子类去实现的,而类中 private的权限只能是自个访问自个,所以在抽象类中方法为abstract时只有public,protected,default三种访问权限。
     而接口中所有成员的属性都为public static final,即接口中的属性自动默认为 pubic static final,也就是说接口中声明的变量都是常量,不能被继承
     接口中所有方法的访问属性为public, 即接口中的方法自动默认为 public,所以实现接口中的方法必须标识为public 或者 abstract,否则编译出错。在JAVA 8 或者更高的版本中的可以使用default

 在实现接口的方法中,抛出异常<=重写前