Java 类体系全景

AAI脑图#7885412025-10-16 12:18
12620

内容详情

类的 3 种类型

抽象类(Abstract Class)

  • 标识与特征
    • abstract 修饰
    • 禁止 new 实例化
    • 可含抽象方法(无实现体)+ 普通方法
  • 作用与约束
    • 通用模板:定义子类公共结构与行为
    • 子类必须重写全部抽象方法,否则自身仍为抽象类

实例类(Concrete Class)

  • 独立实例类
    • 无 abstract/static 修饰
    • 可直接 new 创建对象
    • 示例:Employee、User
  • 非静态嵌套实例类
    • 依赖外部类实例存在
    • 示例:Company.Department

静态类(Static Class)

  • 仅嵌套可用
    • 仅内部类可加 static
    • 无需外部实例即可 new
  • 访问限制与用途
    • 只能访问外部类静态成员
    • 封装工具/辅助逻辑,如 Company.Office

6 种类间关系(弱→强)

依赖(Dependency)

  • 临时使用:方法参数或局部变量
  • 示例:Student.study(Book book)

关联(Association)

  • 长期引用:成员变量持有
  • 可单向/双向
  • 示例:Teacher 拥有 List

聚合(Aggregation)

  • 整体-部分,部分可独立生存
  • 示例:Team 包含 Player,球队解散球员仍在

组合(Composition)

  • 整体-部分,部分与整体同生命周期
  • 示例:Car 包含 Engine,汽车报废发动机失效

继承(Inheritance)

  • is-a 关系,单继承
  • 子类继承属性/方法并可重写
  • 示例:Dog extends Animal

抽象类继承(特殊继承)

  • 子类必须实现所有抽象方法
  • 否则子类仍为抽象类
  • 示例:Cat extends Animal 并实现 eat()

Object 顶层父类

隐式继承

  • 所有类默认 extends Object(无需显式声明)

5 大核心方法

  • equals()
    • 默认比较内存地址;重写用于属性比较
  • hashCode()
    • 默认基于内存地址;重写 equals() 必须同步重写
  • toString()
    • 默认“类名@哈希码”;重写用于属性展示
  • clone()
    • 对象拷贝;需实现 Cloneable 接口
  • finalize()
    • 回收前清理(已弃用)

各类与 Object 关系示例

  • 实例类 Employee:可重写 toString()
  • 抽象类 Animal:抽象方法不与 Object 方法冲突
  • 静态类 Company.Office:同样可重写 equals() 等