软件工程-面向对象-基础概念
本文系统梳理了 Java 面向对象核心知识,从类与对象、方法、继承、多态、抽象类、接口六大要点,清晰对比其特性与使用规则,帮你快速掌握 OOP 核心逻辑。
Java 面向对象核心知识点速记 📚
一、类与对象基础
1. 核心概念
- 类:抽象的模板,代表一类事物(如人类、猫类),是自定义数据类型。
- 对象:类的具体实例,是真实存在的个体,拥有属性(成员变量)和行为(方法)。
- 关系:类是对象的模板,对象是类的实例。
2. 数据类型
- 基本数据类型:
byte、short、int、long、float、double、char、boolean - 引用数据类型:类(Class)、接口(Interface)、数组(Array)
3. 访问权限修饰符
类的成员变量和方法的访问权限包括:public、private、protected、default(包访问权限)。
二、类的组成
1. 成员变量(属性)
- 定义在类中,作用域为整个类。
- 可以是任意数据类型,用于描述对象的状态。
2. 方法(行为)
- 格式:
[修饰符] 返回值类型 方法名(参数类型 参数名) { 方法体 return 返回值; } - 若返回值类型为
void,则无需return语句。 - 静态方法:用
static修饰,属于类,可通过类名直接调用,无需创建对象。 - 非静态方法:属于对象,必须先创建对象实例,再通过对象调用。
3. 构造方法
- 作用:创建对象并初始化属性,
new关键字本质是调用构造方法。 - 规则:
- 方法名必须与类名完全一致。
- 无返回值类型,也不能写
void。 - 若未定义,编译器会自动生成无参构造方法。
三、继承
1. 核心思想
消除代码重复,子类可以复用父类的属性和方法,并扩展新功能。
2. 语法
- 子类使用
extends关键字继承父类:public class 子类 extends 父类 {} - Java 是单继承,一个子类只能继承一个父类。
3. 特性
- 子类会自动拥有父类中所有非私有(
private)的属性和方法。 - 子类可以重写(Override)父类的方法,以实现自己的行为。
四、多态
1. 实现条件
- 继承:存在子类与父类的继承关系。
- 重写:子类重写了父类的方法。
- 向上转型:父类引用指向子类对象(如
Animal a = new Cat();)。
2. 调用规则
- 编译时:看父类类型,只能调用父类中定义的方法。
- 运行时:看子类对象,执行子类中重写的方法。
- ⚠️ 注意:多态状态下,无法直接调用子类独有的方法,需要向下转型。
五、抽象类
1. 定义
- 用
abstract关键字修饰的类,不能被实例化。 - 可以包含抽象方法(只有声明,无方法体,用
abstract修饰)和普通方法。
2. 规则
- 包含抽象方法的类必须是抽象类。
- 子类继承抽象类后,必须重写所有抽象方法,否则子类也必须声明为抽象类。
六、接口
1. 定义
- 用
interface关键字定义,是方法的集合,所有方法默认都是public abstract(JDK 8前)。 - 接口是一种规范/契约,定义了类必须遵守的行为。
2. 实现
- 类使用
implements关键字实现接口:public class 类 implements 接口 {} - 一个类可以实现多个接口,弥补了单继承的局限。
- 实现类必须重写接口中所有的抽象方法。
七、核心对比表
| 特性 | 类 (Class) | 抽象类 (Abstract Class) | 接口 (Interface) |
|---|---|---|---|
| 实例化 | 可以 | 不可以 | 不可以 |
| 继承 | 单继承 | 单继承 | 多实现 |
| 构造方法 | 有 | 有 | 无 |
| 成员变量 | 任意类型 | 任意类型 | 默认为public static final常量 |
| 方法 | 可含实现 | 可含抽象/普通方法 | 仅抽象方法 (JDK 8前) |