**
- 面向对象和面向过程的区别
- **面向过程:**性能比面向对象高,类调用的时候需要实例化,所以开销比较大,耗资源。(没有面向对象易维护,易扩展,易复用)
- **面向对象:**易维护,易扩展,易复用;因为有封装,继承,多态性的特性,所以可以设计出低耦合的系统,更加易于维护。(性能比面向过程低)
- 简单的来说就是:当有一个新的需求时,面向对象是创建一个新的对象,而面向过程是在主函数下面写一个子函数。
## 面向对象的三大特征加粗样式**
- 封装:就是将一个对象的属性隐藏在内部,外界只能调用方法,不能访问改方法的内部属性。
public class People(){
//私有属性,不被外界访问
privite int age;
//获取age的方法
public int getage () {
return age ;
}
//设置age的方法
public void setage (int age ) {
this.age = age ;
}
}
- 继承:就是不同对象之间有一些相同的共同点;比如说小猫,小狗,他们共同点是动物,不同点是猫吃鱼,狗吃骨头。继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。
- 子类拥有父类对象所有的属性和方法(包括私有属性和私有方法),但是父类中的私有属性和方法子类是无法访问,只是拥有
- 子类可以拥有自己属性和方法,即子类可以对父类进行扩展。
- 子类可以用自己的方式实现父类的方法
多态:顾名思义,表示一个对象具有多种的状态。具体表现为父类的引用指向子类的实例。
多态的特点:
- 对象类型和引用类型之间具有继承(类)/实现(接口)的关系;
- 引用类型变量发出的方法调用的到底是哪个类中的方法,必须在程序运行期间才能确定;
- 多态不能调用“只在子类存在但在父类不存在”的方法;
- 如果子类重写了父类的方法,真正执行的是子类覆盖的方法,如果子类没有覆盖父类的方法,执行的是父类的方法。