Java访问权限修饰词

目录

前言

本文内容参考《Java编程思想(第4版)》

包访问权限

如果不提供任何访问权限修饰词,则意味着它是“包访问权限”。

默认访问权限没有任何关键字,但通常是指包访问权限(有时也表示成为friendly)。

这就意味着当前的包中的所有其他类对那个成员都有访问权限,但对于这个包之外的所有类,这个成员却是 private。

public:接口访问权限

使用关键字 public,就意味着 public 之后紧跟着的成员声明自己对每个人都是可用的。

private:你无法访问

关键字 private 的意思是,除了包含该成员的类之外,其他任何类都无法访问这个成员。

由于处于同一个包内的其他类是不可以访问 private 成员的,因此这等于说是自己隔离了自己。

protected:继承访问权限

有时,基类的创建者希望有某个特定成员,把对它的访问权限赋予派生类而不是所有类。这就需要 protected 来完成这一工作。protected 也提供包访问权限,也就是说,相同包的其他类可以访问 protected 元素。

我们先来看一个类:

Java访问权限修饰词
如果类 Cookie 中存在一个方法 bite() 的话,那么该方法同时也存在于任何一个从 Cookie 继承而来的类中。但是由于 bite() 有包访问权限而且它位于另一个包内,所以我们在这个包内是无法使用它的。

显然,下面的类是不可以调用拥有包访问权限的成员bite()的:

Java访问权限修饰词
当然,也可以把 bite() 指定为 public,但是这样做所有的人就都有了访问权限,而且很可能这并不是你所希望的。如果我们将类 Cookie 像这样加以更改:

Java访问权限修饰词
现在 bite() 对于所有继承自 Cookie的类而言,也是可以使用的:

Java访问权限修饰词
注意,尽管 bite() 也具有包访问权限,但是它仍旧不是 public 的。

上一篇:关于子类与父类的转换, 还有多态的说明 - 回复 "靳承柱" 和 "志成" 的问题


下一篇:用Lambda表达式操作List集合