什么是面向对象编程?
面向对象编程就是将现实世界中客观存在的事物抽象成计算机能识别的机器码,对于Java语言来说就是类。面向对象更符合人们的思维方式和思考模式。比如现实世界中有个汽车。那么抽象成java中的类的形式如下:
//将汽车抽象成Car类
public class Car{
//汽车的颜色
private String color;
//汽车型号
private String model;
//在公路上跑(行为)
public void run(){
System.out.println("开动汽车.");
}
}
面向对象的三个特征:
封装:将对象的具体实现细节隐藏,然后通过提供一些公共方法向外暴露功能。比如java中最常见的get和set方法。
继承:继承的目的是为了实现代码的复用。java通过extends关键实现类的继承。
多态:是指将子类的实例对象赋给父类的变量,但是在运行时然表现出子类的行为特征。比如AbstractList list1 = new ArrayList(); list1.addAll(new ArrayList()); 调用的是ArrayList类中的addAll(),并没有调用AbstractList中的addAll();。继承是多态的继承,没有继承就没有子类和父类的概念,更谈不上多态。
这里再说一个题外话,JavaScript语言本身不支持面向对象,但是可以通过其它形式,变通的手段模拟出面向对象的多态、继承(通过javaScript对象的prototype )、接口、方法重载。其实多态的体现形式有继承(对接口、抽象类的继承)、方法重写、方法重载。
详见
多态、继承、接口
方法重载