1.阻止继承:final类和方法
不允许扩展的类可以用final修饰符。特定方法也可以被声明为final,这样做的话子类就不能覆盖这个方法。(final类中的所有方法自动地称为final方法)。
2.抽象类
是一种祖先类,使用abstract关键字定义,为了提高程序的清晰度,包含一个或者多个抽象方法的类必须被声明为抽象的。抽象类不能被实例化。
3.受保护访问
protected
- 只能由同一个包中的类访问。
- 能够避免另一个包中的超类派生子类来访问受保护的字段。
(实际不推荐使用,第一,子类集合是无限制的,任何一个人都能够由你的类派生一个子类,然后编写代码直接访问portected实例字段,从而破坏了封装性。第二, 在同一个包中的所有类都可以访问proteced字段,而不管它们是否为这个类的子类。)
小结
{ p r i v a t e − 仅 对 本 类 可 见 p u b l i c − 外 部 完 全 可 见 p r o t e c t e d − 对 本 包 和 所 有 子 类 可 见 \left\{ \begin{aligned} private-仅对本类可见\\ \\public-外部完全可见\\ \\protected-对本包和所有子类可见\\ \end{aligned} \right. ⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧private−仅对本类可见public−外部完全可见protected−对本包和所有子类可见
4.Object
- 所有类的超类。