面向对象是相对于面向过程的一种编程方式。 面向过程分析解决问题所需的步骤,然后直接写出实现方法。
面向对象是以对象为基本单位,你不需要知道怎么具体的去解决问题,你只要告诉对象你需要干什么。即对对象实例化。对象本身便会执行。
一个类中可以包含很多对象。类是对对象的抽象。对象是对类的一个实例。
面向对象的三大特性:
封装性、继承性、多态性
封装
把描述一个对象的属性和行为封装成一个类,把具体的业务逻辑功能实现封装成一个方法,其次封装的意义还有效的保护属性通过访问修饰符私有化属性(成员变量),公有化方法。
继承
实现代码的复用,所有的子类所共有的行为和属性抽取为一个父类,所有的子类继承该类可具备父类的属性和行为,继承具有单一性和传递性。
class 子类 extends 父类 {
}
使用 extends 指定父类。
Java 中一个子类只能继承一个父类 (而C++/Python等语言支 持多继承)。
子类会继承父类的所有 public 的字段和方法。
对于父类的 private 的字段和方法, 子类中是无法访问的。
子类的实例中, 也包含着父类的实例. 可以使用 super 关键字得到父类实例的引用。(因为他继承父类的成员使用,使用前这些成员必须初始化,而他们是父类的成员,所以,必须通过父类进行初始化。所以,会先创建一个父类的对象。)
子类不能继承父类的构造方法。子类创建对象时,先会创建父类的对象。默认是调用父类的无参构造方法。