总结于JavaGuide
目录
知识点总结
成员变量与局部变量的区别?(重要)
静态方法和实例方法有何不同?
重载和重写有什么区别?(高频)
关于 重写的返回值类型
面向对象和面向过程的区别 (重要)
回答
1. 成员变量与局部变量的区别?
- 定义位置:成员变量在类中、方法外;局部变量在方法 / 代码块 / 形参中。
- 生命周期:成员变量随对象创建 / 销毁,局部变量随方法执行创建 / 销毁。
- 默认值:成员变量有默认值(如 int=0),局部变量无(必须初始化)。
- 作用域:成员变量作用于整个类,局部变量仅在声明的代码块内有效。
- 修饰符:成员变量可加 public/static/final 等,局部变量仅能加 final。
2. 静态方法和实例方法有何不同?
- 调用方式:静态方法(类名.方法名),实例方法(对象.方法名)。
- 访问权限:静态方法仅能访问静态成员(静态变量 / 静态方法);实例方法可访问静态 + 实例成员。
- 关键字:静态方法无 this/super(无对象关联),实例方法有。
- 内存时机:静态方法类加载时初始化,实例方法对象创建时初始化。
3. 重载和重写有什么区别?
| 维度 | 重载(Overload) | 重写(Override) |
|---|---|---|
| 定义位置 | 同类中 | 子类与父类之间 |
| 核心规则 | 方法名相同,参数列表(个数 / 类型 / 顺序)不同 | 方法签名(名 + 参数)完全相同 |
| 多态类型 | 编译时多态 | 运行时多态 |
| 其他规则 | 返回值 / 权限可任意 | 返回值兼容、权限不缩小、异常不扩大 |
4. 关于重写的返回值类型?
- JDK 5 + 支持协变返回类型:子类重写方法的返回值类型可是父类返回值类型的子类(如父类返回 Object,子类可返回 String)。
- 核心要求:返回值类型必须 “兼容”,不能是与父类返回值无关的类型(如父类返回 int,子类不能返回 String)。
5. 面向对象和面向过程的区别?
- 核心思想:面向过程关注 “步骤和流程”(如先做 A 再做 B);面向对象关注 “对象和交互”(将功能封装为对象,通过对象协作完成)。
- 核心特性:面向过程无封装 / 继承 / 多态;面向对象具备三大特性,可解耦、易扩展。

1259

被折叠的 条评论
为什么被折叠?



