修饰符综述
出现场合
public,protec,private三者同时只能出现之一;
abstrat,final最多出现其中之一;
他们可以与static组合起来使用。
访问权限表
同一个类中 | 同一个包中 | 子类中 | 全局范围 | |
---|---|---|---|---|
private | 可以访问 | |||
default | 可以访问 | 可以访问 | ||
protected | 可以访问 | 可以访问 | 可以访问 | |
public | 可以访问 | 可以访问 | 可以访问 | 可以访问 |
static
static修饰的成员表面它属于这个类本身,而不属于这个类的单个实例
静态成员不能直接访问非静态成员
abstract
abstract抽象方法和抽象类都必须用它来修饰
abstract与static不可同时使用修饰同一个方法
使用static修饰一个方法时,表明该方法属于这个类本身,即通过类就能调用该方法。但是如果该方法被定义成抽象方法,则导致通过该类来调用该方法时出现错误(调用了一个们没有方法体的方法)。
final
final修饰的类不能被继承
final和abstract不能同时使用
abstract在修饰类时,此类只能被继承;当修饰方法时,表明该方法必须又子类重写。而final修饰的类不能被继承,final修饰的方法不能被重写。
如何使用
-保证父类的封装性,不会被子类随意改变
-尽可能隐藏父类内部数据,将父类的属性参数设置为private,不让子类访问
-父类中的辅助方法用private修饰,让子类无法访问
-希望被外部调用的方法用public修饰。但又不希望子类重写该方法时,可以使用final
-如果父类中的某个方法希望被子类重写,但有不希望被其他类访问,可以用protect