Java基础(二: 面向对象:类与对象、封装、继承、多态、抽象类,接口)

55 阅读2分钟

配合真实代码食用:https://juejin.cn/post/7568425510792134656

类与对象

  • 类(class): 对象的模板或蓝图,定义了对象的属性和行为
  • 对象(Object): 类的实例,具有具体状态和行为的实体
  • 实例化: 使用 new 关键字创建对象实例

封装(Encapsulation)

  • 数据隐藏: 使用访问修饰符(private类内访问、protected同包或者子类访问、public完全公开)控制成员可见性
  • 方法暴露: 通过 getter/setter 方法提供受控的数据访问
  • 优势: 不封装的话,别人可以随便调用未封装类的代码,而该类后续改动会导致调用者可能出错,这就是耦合度高。封装可以隐藏代码内部实现细节,类编写者可以只将稳定的方法暴露在外即可,别人只能调用public的方法,提高代码安全性。

继承(Inheritance)

  • 代码复用: 子类继承父类的属性和方法
  • 关键字: 使用 extends 实现类继承
  • 限制: Java支持单继承,一个类只能直接继承一个父类
  • 抽象类继承: 抽象类可以包含具体方法实现和抽象方法,子类继承时必须实现所有抽象方法

多态(Polymorphism)

  • 方法重载: 同一类中方法名相同但参数列表不同
  • 方法重写: 子类重新定义父类的方法实现
  • 运行时多态: 父类引用指向子类对象,调用时执行子类方法
  • 接口多态: 同一接口的不同实现类可以表现出不同行为

抽象类(Abstract Class)

  • 定义: 使用 abstract 关键字声明,不能被直接实例化
  • 作用:
    • 提供通用模板和部分实现
    • 强制子类实现特定的抽象方法
    • 建立清晰的继承层次结构
  • 特点:
    • 可以包含抽象方法和具体方法
    • 可以有构造函数和成员变量
    • 一个类只能继承一个抽象类

接口(Interface)

  • 定义: 使用 interface 关键字声明,定义行为规范
  • 作用:
    • 定义标准契约,确保实现类遵循相同规范
    • 实现解耦合,降低代码依赖关系
    • 支持多重继承(一个类可实现多个接口)
  • 特点:
    • Java 8后可包含默认方法和静态方法
    • 所有方法默认是 public abstract
    • 所有变量默认是 public static final

这些特性共同构成了Java面向对象编程的基础,提供了代码的可维护性、可扩展性和复用性。