Java 类的深入解析
1. 类修饰符
类修饰符主要有 public
、 final
和 abstract
三种,它们各自有着不同的作用:
- public
:如果顶级类 C 被声明为 public
,那么它在其所在包之外也是可访问的。
- final
:当类 C 被声明为 final
时,不能声明 C 的子类,也就无法重写 C 中声明的任何方法。这对于防止恶意子类破坏数据表示的不变性很有用。
- abstract
:若类 C 被声明为 abstract
,则它不能被实例化,但 C 的非抽象子类可以被实例化。抽象类可以声明构造函数和初始化器,在实例化非抽象子类时执行。抽象类可以声明抽象和非抽象方法,而非抽象类不能声明抽象方法。并且,一个类不能同时为 abstract
和 final
,因为这样将无法创建该类的对象。
2. 子类、超类、类层次结构、继承和重写
2.1 子类声明
类 C 可以通过 extends
子句声明为类 B 的子类,形式如下:
class C extends B