面试题总结——面向对象基础

总结于JavaGuide

目录

知识点总结

回答

1. 成员变量与局部变量的区别?

2. 静态方法和实例方法有何不同?

3. 重载和重写有什么区别?

4. 关于重写的返回值类型?

5. 面向对象和面向过程的区别?


知识点总结

成员变量与局部变量的区别?(重要)

静态方法和实例方法有何不同?

重载和重写有什么区别?(高频)

关于 重写的返回值类型

面向对象和面向过程的区别 (重要)

回答

1. 成员变量与局部变量的区别?

  • 定义位置:成员变量在类中、方法外;局部变量在方法 / 代码块 / 形参中。
  • 生命周期:成员变量随对象创建 / 销毁,局部变量随方法执行创建 / 销毁。
  • 默认值:成员变量有默认值(如 int=0),局部变量无(必须初始化)。
  • 作用域:成员变量作用于整个类,局部变量仅在声明的代码块内有效。
  • 修饰符:成员变量可加 public/static/final 等,局部变量仅能加 final。

2. 静态方法和实例方法有何不同?

  • 调用方式:静态方法(类名.方法名),实例方法(对象.方法名)。
  • 访问权限:静态方法仅能访问静态成员(静态变量 / 静态方法);实例方法可访问静态 + 实例成员。
  • 关键字:静态方法无 this/super(无对象关联),实例方法有。
  • 内存时机:静态方法类加载时初始化,实例方法对象创建时初始化。

3. 重载和重写有什么区别?

维度重载(Overload)重写(Override)
定义位置同类中子类与父类之间
核心规则方法名相同,参数列表(个数 / 类型 / 顺序)不同方法签名(名 + 参数)完全相同
多态类型编译时多态运行时多态
其他规则返回值 / 权限可任意返回值兼容、权限不缩小、异常不扩大

4. 关于重写的返回值类型?

  • JDK 5 + 支持协变返回类型:子类重写方法的返回值类型可是父类返回值类型的子类(如父类返回 Object,子类可返回 String)。
  • 核心要求:返回值类型必须 “兼容”,不能是与父类返回值无关的类型(如父类返回 int,子类不能返回 String)。

5. 面向对象和面向过程的区别?

  • 核心思想:面向过程关注 “步骤和流程”(如先做 A 再做 B);面向对象关注 “对象和交互”(将功能封装为对象,通过对象协作完成)。
  • 核心特性:面向过程无封装 / 继承 / 多态;面向对象具备三大特性,可解耦、易扩展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值