类与对象
- 类(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面向对象编程的基础,提供了代码的可维护性、可扩展性和复用性。