« 上一篇下一篇 »

Protected继承的访问权限

Protected关键词所处理的是一种被称为继承的概念,所谓继承就是选一个现成的类——我们称之为基类——然后在不改变已有类的前提下,往里面添加新的成员。你还可以修改已有类的成员的行为方式。要继承一个已有的类,你必须说明新的类extends一个已有的类。

如果你创建了一个新的package,并且其中某个类还继承了另一个package里面的类,那么你只能访问原先那个package的public成员。当然如果是在同一个package里面继承的话,那么你还可以访问package权限的成员。有时基类的创建者会希望派生类能访问某个成员,而其它类则不能访问。这就是protected要做的。Protected也赋予成员package权限——也就是说,同一个package里的其它类也可以访问protected元素。

集成有一个有趣的特性,就是如果cookie类里一个bite()方法,那么所有继承cookie的类里面也都有bite()方法。但是bite()是package权限的,并且在另一个package里面,因此我们没法用。当然你可以把它做成public的,但是这样一来任何人都可以访问这个方法了,而这又不是你所希望的。如果你修改了cookie,那么在dessert package里,bite()仍然是package权限的,但是继承cookie的类也能访问它 了,但它却不是public的。

« 上一篇下一篇 »