访问控制权限—Java如何在代码体现面向对象和多态(3)

一、访问控制权限

(1)访问控制权限都有哪些?

private 私有
public 公开
  默认
protected 受保护

(2)以上4个访问控制权限的,控制范围是什么?

访问修饰符

本类

同包

子类

任意位置

Public

可以

可以

可以

可以

Protected

可以

可以

可以

不行

默认

可以

可以

不行

不行

Private

可以

不行

不行

不行

 (3)测试

(a)首先我先建立了一个包

(b)在这个包中我定义了一个类,并且给他四个不同类型的访问权限

(c)在Test类中,我分别去访问这四个属性

结果,我发现只有被private修饰的id会报错,所以private 只能在本类中访问,即使是同包也不能访问。

(5)之后,我又在lftgb这个包下面建立了一个类Test2

 

 (6)继续访问UserTest

结果我发现只有被public修饰的name没有被报红,被protected/默认修饰的age、sex都报红了。

(7)我再测试用Test2去测试UserTest

 用子类去访问age就可以了,但是这时候我遇到了一个问题,如果我用父类去访问自己的protected行不?

 

 这种情况下,是不行的。

二、访问控制权限可以修饰什么?

属性 4个都可以
方法 4个都能用
public和默认能用,其他不行
接口 public和默认能用,其他不行

三、总结

private只可以修饰本类的,proctected和默认可以修饰同包的,其实protected也可以修饰不同包子类的,public都可以。

猜你喜欢

转载自blog.csdn.net/MyxZxd/article/details/106036764