Java抽象类支持普通属性、构造方法和普通方法,仅不可实例化;属性含实例/静态/常量等,继承规则同父类;构造方法供子类调用以初始化;普通方法可直接继承或重写。

可以。Java 中的抽象类完全支持普通属性、构造方法和普通方法,语法和行为与普通类基本一致,只是不能直接实例化。
普通属性(成员变量)
抽象类可以定义各种访问修饰符的成员变量,包括:
- 实例变量(如 private String name;)
- 静态变量(如 public static int VERSION = 1;)
- 静态常量(如 public static final double PI = 3.14159;)
- 带初始值的变量(如 protected boolean active = true;)
这些变量的继承规则与普通父类相同:子类可直接访问 public 和 protected 成员,同包内可访问默认(包级)成员,private 成员则需通过 getter/setter 访问。
构造方法
抽象类可以声明构造方法,虽然自身不能 new,但子类在创建对象时会调用它,用于:
立即学习“Java免费学习笔记(深入)”;
- 初始化父类中的字段(尤其是 final 字段)
- 执行公共校验逻辑(如参数非空、范围检查)
- 设置共享状态或资源引用
注意:构造方法推荐用 protected 修饰;若只提供带参构造,子类必须显式调用 super(...);构造中不可调用抽象方法。
普通方法(非抽象方法)
抽象类可包含已实现的方法,即有完整方法体的方法:
- 子类可直接继承并调用,无需重写
- 子类也可选择重写(override),实现多态
- 常用于封装通用逻辑,比如日志记录、参数预处理、模板方法骨架等
例如:void logStart() { System.out.println("Processing started..."); } 可被所有子类复用。
本质上,抽象类是“带限制的普通类”——限制只有一条:不能 new 实例;其余能力全部保留。


















