面向对象的三大特征为:封装、继承、多态

封装

面向对象编程语言对于客观世界的模拟,把事物的状态信息都隐藏在对象内部,外界无法直接操作和修改。一个好的封装应该有以下特性:

  • 隐藏好类的细节
  • 限制使用者的不合理访问
  • 方便检查,保证对象信息的完整性,同时提高代码的可维护性

继承

继承就是面向对象实现软件复用的重要手段,当子类继承父类后,子类作为一种特殊的父类,将直接获得父类的属性和方法。Java中的子类是单继承的,一个子类只能继承一个父类,多继承可能会导致方法的混淆,但是Java中子类可以间接有多个父类。


多态

多态指的是子类对象可以直接赋给父类变量,但是运行时仍然表现出子类的行为特征,这意味着同一个类型的对象在执行同一个方法时,可能表现出多种行为特征。同时多态的应用可以使得程序变得更加简洁。

class Drivers{
    void drive(Car car){...}
    void drive(Truck truck){...}
    void driver(Bus bus){...}
}

这样的话由于某个司机可以驾驶更多的交通工具,就要为这个司机增加车型,这样代码会越来越繁琐。如果用多态的话,我们可以直接定义一个父类Vehicle传入Vehicle类型的实例,代码就可以相对简洁了

class Drivers{
    void drive(Vehicle vehicle){...}
}