面向接口编程。

Java 语言的三大核心特性是 封装、继承、多态。它们是面向对象编程的基石,理解它们就能抓住 Java 设计思想的精髓。

1. 封装

隐藏内部的复杂性,只暴露必要的接口。

  • 怎么做:用 private 修饰属性,提供 public 的 getter/setter 方法来控制访问。

  • 好处

    • 安全:可以在方法里加校验逻辑,防止数据被非法篡改。

    • 易维护:内部实现怎么变,只要接口不变,调用方代码就不用改。

  • 经典例子:遥控器,你只需要按按钮(接口),不用管内部电路怎么工作(实现)。

2. 继承

子承父业,实现代码复用和层级关系。

  • 怎么做:使用 extends 关键字,让子类拥有父类非私有的属性和方法。

  • 核心原则:子类是对父类的扩展,两者应是 is-a 的关系,比如“狗是动物”。

  • 注意点:Java 只支持单继承(一个类只能有一个父类),但支持多层继承和接口的多实现,以避免代码耦合过深。

  • 例子:定义好一个“动物”类,所有具体动物(猫、狗)就能直接拥有“吃”、“睡”等基本行为。

3. 多态

同一个行为,在不同对象身上会表现出不同的形态。

  • 前提:必须同时满足 继承(或接口实现)+ 方法重写 + 父类引用指向子类对象

  • 怎么做:编译时看左边(父类),运行时看右边(子类)。Animal a = new Dog(); a.eat(); 实际执行的是狗吃东西的方法。

  • 好处:代码的可扩展性极强,写代码时只关心“做什么”,不用关心具体“谁来做”。添加新子类,无需修改原有逻辑。

简单总结一下关系:

  • 封装:把东西包好,只给入口,求的是安全和简化

  • 继承:把父辈的能力传下来,求的是复用和体系

  • 多态:同一个指令发出,不同子类能做出不同响应,求的是灵活和扩展

另外,你可能还会听到 “抽象” ,它其实更像一种思想,通常通过抽象类和接口,结合上面的三大特性来体现。

更多推荐