Java修饰符
简单整理Java修饰符
此为期末考试前复习整理的Java修饰符知识。目前学校的Java课程学习只是浅尝辄止,为了以后方便复习,根据课堂学习进行简单整理。
1、访问权限修饰符
public 公有访问修饰符
- 可被所有其他类访问
protected 受保护的访问修饰符
- 该类本身、同一包中的其他类、其他包中的该类子类
default 默认访问修饰符
- 类的成员不添加任何修饰符时,默认为default。 同一包中的类可访问。
private 私有访问修饰符
- 只有该类本身可访问
2、abstract抽象修饰符
abstract修饰符可用来修饰类和类的方法。
abstract修饰类
abstract修饰的类为抽象类。
- 抽象类不能实例化,声明抽象类是为了将来对该类进行扩充。
- 含有抽象方法的类必须声明为抽象类,而抽象类中允许含有非抽象方法。
- 抽象类可以不包含抽象方法。
- 抽象类可从抽象类和非抽象类继承。
abstract修饰方法
abstract修饰的方法为抽象方法
- 抽象方法没有具体实现,抽象方法的具体实现由继承它的子类提供。 也就是说抽象类中的抽象方法不写出方法体,形参列表后直接以“;”结尾。
- 继承抽象类的子类,要么必须实现所有的继承来的抽象方法,要么声明为抽象类(此情况允许含有抽象方法)。
示例代码
abstract class Son{
private int x;
public abstract int max(); //抽象类中的抽象方法
}
class Father extends Son{
public int max(){
/*抽象方法由子类实现;
子类实现抽象方法时,不再写abstract修饰符;
*/
}
}
3、final最终修饰符
final修饰符可修饰类、方法和变量
final修饰变量(表示常量)
- final修饰的变量可看为常量,一旦被赋值便无法更改
//直接定义a为常量
final int a=3;
// 先定义后赋值,赋值后变量的值不再改变
final int a;
a=3;
final修饰类(表示最终类)
- final修饰的类为最终类,最终类不能被继承。
- 因为abstract修饰的类为抽象类可以被继承,所以一个类不能同时被final 和abstract修饰。
final class person{
//该类无法被继承
}
final修饰类的方法
- final修饰的方法可以被子类继承,但不能被覆盖(重写)
- 可防止父类方法内容被篡改修改
class Son{
public final void speak(){
//该方法不能被子类覆盖
}
}
4、接口及其成员的访问属性
接口是一类特殊的类,其访问修饰符的与类一致。接口的成员有默认的访问修饰权限。
相关内容整理在另一文中。