zhuhaodong 发表于 2021-5-6 14:35

java面试题,什么是面向对象

本帖最后由 zhuhaodong 于 2021-5-6 14:37 编辑

什么是面向对象?谈谈你对面向对象的理解
对比面向过程,面向过程更注重事情步骤和顺序,面向过程注重事情的参与者(对象)、各自需要做什么。
各自优缺点:面向过程比较直接高效,面向对象更易于复用、拓展和维护。
那么面向对象还有它绕不开的三大特性:封装、继承、多态。

封装
封装就是内部细节对外部调用透明,外部调用无需修改或关心内部实现。
好比我有一个类,这类中有很多属性、方法,而我只想提供一两个方法给外部调用,其他方法不想让外部调用。
下面讲一下java中使用封装最多列子:
1、javabean的属性私有,提供get/set方法对外访问,这样属性的赋值或者获取逻辑只能由javabean本身决定,而不能让外部胡乱修改。
private String name;
public void setName(String name){
    this.name="52pojie"+name;
}
这个name属性我就在设置的时候加上了前缀,这样外部不能修改我的赋值操作。
2、orm框架(数据库框架)
我们操作数据库,我们不需要关心数据库是如何建立连接的、sql是如何执行的,只需要引入mybatis等持久层框架调用里面的方法即可。


继承
继承的意义:继承基类的方法,并做出自己的改变和拓展。
子类共性的方法或属性直接使用父类的,而不需要自己再定义,只需要拓展自己个性化的方法或属性。

多态
多态的意义:基于对象所属类的不同,外部对同一个方法的调用,实际执行的逻辑不同。
多态和继承是包含关系,形成多态的三个条件:继承、方法重写、父类引用指向子类对象。
父类类型 变量名= new 子类对象;
变量名.方法名();//这里调用的方法是子类的方法,所以这叫多态
//这样调用的好处是子类对象和无限替换,而调用的方法名不用改变。


逸帅 发表于 2021-5-6 14:52

加油,2022届的嘛

重鸣之蝉 发表于 2021-5-6 16:40

面向对象,指面部朝向你的对象,保持微笑。

不夏流年 发表于 2021-5-8 14:40

java面试中没有这个问题,请忽略

surongxian 发表于 2022-11-14 15:43

希望以后自己面试的时候用得到!

zx1086 发表于 2022-11-14 16:40

有了工作经历以后就没人会问你这种问题了
页: [1]
查看完整版本: java面试题,什么是面向对象