Java中的权限修饰符
一、方法和属性访问权限的分类与等级分类表
访问权限 | 本类 | 非本类 | |||
同包 | 不同包 | ||||
继承 | 非继承 | 继承 | 非继承 | ||
public | √ | √ | √ | √ | √ |
protected | √ | √ | √ | √ | |
friendly(default) | √ | √ | √ | ||
private | √ |
二、friendly and protected
(注:此处解释private与public修饰符)
1、friendly
I、friendly是系统默认的条件修饰符,当权限控制符不写时系统自动将默认为friendly
II、friendly在同包中无论是继承或非继承均可以被其他类调用
可以看出friendly在同包的非继承关系中是可以被调用的
III、friendly在不同包中无论是继承或非继承均可以被被其他类调用
子类Son中调用构造方法Person构造方法失败,且本身也没有继承到person中含有friendly修饰的属性和方法;
2、protected
I、protected是一个权限高于friendly的类型,其含有上述friendly的所有权限;
II、protected在不同包继承关系的特殊情况;
一、非static类型
此时只能通过子类进行引用protected修饰的变量
可以看出,这里仅仅被继承的子类中可以引用被protected修饰的属性与方法
二、static类型
被protected修饰的属性和方法子类与父类创建的对象均可调用;
这里要注意一点:构造方法只可被权限控制符修饰,但是通过调用时person(父类)可以使用静态修饰的变量age可以看出上述结论成立。
这就是今天要讲的全部内容。。。