Skip to content

Java 面向对象基础

本教程代码假定读者已了解 Java 语法,这里只强调与设计模式强相关的 OO 要点。

接口与抽象类

接口 interface抽象类 abstract class
多继承可多实现单继承
状态JDK 8+ 可有 default/static 方法可有字段与具体方法
典型用途能力契约、策略/适配目标模板方法骨架、共享实现

模式里常见:面向接口编程(依赖倒置),实现类可替换。

组合优于继承

继承暴露父类细节,子类与父类强耦合。模式里更常用持有引用(组合):

java
// 组合:行为委托给成员
public class Service {
    private final Repository repo;
    public Service(Repository repo) { this.repo = repo; }
}

可见性与不可变

  • 构造器 private单例、控制创建。
  • final 字段:建造者、配置对象。
  • 包级或 protected:子类/同包协作(模板方法)。

函数式接口(JDK 8+)

@FunctionalInterface 让「一个抽象方法的接口」可用 Lambda,与策略命令等模式在 Java 里写法更简洁:

java
Runnable cmd = () -> System.out.println("run");