面试题01-面对对象
一、面向对象
1.1区别
面向过程:
- 注重处理问题的步骤
- 更加高效
void 打开洗衣机(){...}
void 放衣服(){...}
void 放洗衣粉(){...}
void 清洗(){...}
void 烘干(){...}
面向对象:
- 注重处理问题的参与者及其各自的需求
- 易于复用,扩展,维护
class 人{
void 打开洗衣机();
void 放衣服();
void 放洗衣粉();
}
class 洗衣机{
void 清洗();
void 烘干();
}
1.2三大特性
封装
明确标识出允许外部使用的所用成员函数和数据项
- JavaBean的属性私有,提供geter,seter对外访问,属性的赋值只能由javabean本身决定,外部无法修改
eg:
/*
* 属性的赋值只能由javabean本身决定,
* 属性的赋值name前必须有"我叫:"
*/
private String name;
public void setName(String name){
this.name = "我叫:"+name;
}
- orm框架
继承
继承父类的方法,并作出改变和扩展;
子类共性的方法或者属性直接调用父类的;
多态
基于对象所属类的不同,外部对同一个方法的调用,实际执行的逻辑不同
条件:存在继承,存在方法的重写,父类引用指向子列对象
父类类型 变量名 = new 子类对象();
变量名.方法名()
弊端:无法调用子类的特有功能