修饰符的作用
-
修饰符的分类和作用
java当中修饰符根据功能可分为两类,一类是访问全权限修饰符,另一类是非访问权限修饰符。
访问权限修饰符主要有四种:即public、protected、default(不指定访问权限修饰符时)、private,四种修饰符访问权限从左向右依次递减。非访问权限修饰符常见的有static、final、abstract、synchronized、volatile五种修饰符,其中最后两种修饰符设计线程编程,此处不做讲解。
根据修饰作用对象的不同,修饰符又可以分为类修饰符,方法、变量修饰符。其中类修饰符包括:public、default、abstract、final。而方法、属性除了类所具有的修饰符外,还可以用private、static修饰。
综上所述,java修饰符种类放多,不同的修饰符具有不用的作用,同时其作用对象也有所不同,在学习过程中要格外注意。
-
修饰符的具体功能以及作用对象
访问权限修饰符:控制类、方法、变量的访问权限
修饰符 类 方法和变量 public 包内外的类都可以访问 包内外的类都可以访问 protected 不可以修饰类(内部类除外,内部类可看作方法或变量) 同一包内的类可以访问,包外只有子孙类可以访问 default 只允许同一包内的类访问 只允许同一包内的类访问 private 不可以修饰类 只允许类内部访问 非访问权限修饰符:
修饰符 类 方法和变量 static 不可以修饰类 通过类名访问 final 表明类不可继承 子类可以重载,不能重写 abstract 不可实例化 必须继承和实现
重载与重写
参数列表 | 重写 | 重载 |
---|---|---|
参数列表 | 不能更改 | 必须更改 |
返回类型 | 不能更改 | 可以更改 |
访问权限 | 不可比父类范围窄 | 可以更改 |
非访问权限 | 不可更改 | 可以更改 |
抽象类和接口中方法和变量的访问权限
访问权限 | 抽象类 | 接口 |
---|---|---|
类 | 只能是public或default(java 1.8) | public |
方法、变量 | 抽象方法可以是public、protected、default,对变量不做要求 | public(方法|属性)、static final(属性) |
说明 | 抽象类中既可以有非抽象方法;抽象方法不能用(static、final)修饰符 | 接口中必须全部抽象方法,变量必须是静态常量,抽象方法不能用(static、final)修饰符 |