- 编程思路不同︰面向过程以实现功能的函数开发为主,而面向对象要首先抽象出类、属性及其方法,然后通过实例化类、执行方法来完成功能
- 封装性︰都具有封装性,但是面向过程是封装的是功能,而面向对象封装的是数据和功能
- 面向对象具有继承性和多态性,而面向过程没有继承性和多态性,所以面向对象优势很明显
- 面向过程性能比面向对象高:因为类调用时需要实例化,开销比较大,比较消耗资源(所以当性能是最重要的考量因素的时候,比如单片机、嵌入式开发、Linux/Unix 等一般采用面向过程开发)
- 面向对象易维护、易复用、易扩展: 因为面向对象有封装、继承、多态性的特性,所以可以设计出低耦合的系统,使系统更加灵活、更加易于维护
👨💻面试官继续追问:仔细说说面向对象的三大特征?
- 封装:通常认为封装是把数据和操作数据的方法封装起来,对数据的访问只能通过已定义的接口。
栗子:
/**
* @Auther: xppll
* @Date: 2021/11/24 19:17
*/
public class Person {
private String name;//name属性私有化
private int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
//只能通过get方法获取
public String getName() {
return name;
}
//封装操作数据的方法
public void work() {
System.out.println(name + "---" + age);
}
}
- 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类/基类),得到继承信息的被称为子类(派生类)。
例子:
<