软件工程-面向对象-基础概念

本文系统梳理了 Java 面向对象核心知识,从类与对象、方法、继承、多态、抽象类、接口六大要点,清晰对比其特性与使用规则,帮你快速掌握 OOP 核心逻辑。


Java 面向对象核心知识点速记 📚

一、类与对象基础

1. 核心概念

  • :抽象的模板,代表一类事物(如人类、猫类),是自定义数据类型。
  • 对象:类的具体实例,是真实存在的个体,拥有属性(成员变量)行为(方法)
  • 关系:类是对象的模板,对象是类的实例。

2. 数据类型

  • 基本数据类型byteshortintlongfloatdoublecharboolean
  • 引用数据类型:类(Class)、接口(Interface)、数组(Array)

3. 访问权限修饰符

类的成员变量和方法的访问权限包括:publicprivateprotecteddefault(包访问权限)。


二、类的组成

1. 成员变量(属性)

  • 定义在类中,作用域为整个类。
  • 可以是任意数据类型,用于描述对象的状态。

2. 方法(行为)

  • 格式:[修饰符] 返回值类型 方法名(参数类型 参数名) { 方法体 return 返回值; }
  • 若返回值类型为void,则无需return语句。
  • 静态方法:用static修饰,属于类,可通过类名直接调用,无需创建对象。
  • 非静态方法:属于对象,必须先创建对象实例,再通过对象调用。

3. 构造方法

  • 作用:创建对象并初始化属性,new关键字本质是调用构造方法。
  • 规则:
    • 方法名必须与类名完全一致
    • 无返回值类型,也不能写void
    • 若未定义,编译器会自动生成无参构造方法。

三、继承

1. 核心思想

消除代码重复,子类可以复用父类的属性和方法,并扩展新功能。

2. 语法

  • 子类使用 extends 关键字继承父类:public class 子类 extends 父类 {}
  • Java 是单继承,一个子类只能继承一个父类。

3. 特性

  • 子类会自动拥有父类中所有非私有(private)的属性和方法。
  • 子类可以重写(Override)父类的方法,以实现自己的行为。

四、多态

1. 实现条件

  1. 继承:存在子类与父类的继承关系。
  2. 重写:子类重写了父类的方法。
  3. 向上转型:父类引用指向子类对象(如 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前)