①:封装 ②:继承 ③:多态
主要用来实现动态性,提高程序的灵活性和扩展性
要有类与类的继承关系,子类必须继承父类
必须要有重写的方法
父类引用指向子类对象
面向过程注重过程,就是要分析出解决问题需要的步骤,然后按步骤一步一步实现,类调用时需要实例化,开销比较大,性能比面向对象高。
面向对象最主要的就是把构成问题的事务分解成各个对象,把对象封装成方法,然后调用方法,优点就是易维护,易扩展,提高了可重用性。
动态绑定是指:在程序运行过程中,根据具体的实例对象才能具体确定是哪个方法。
不可以单独实例化(例如抽象类有一个name属性,子类继承后实例化相当于对象中包含着一个父类对象),即依附于自己的子类实例化
程序在JVM运行过程中,会把类的类型信息、static属性和方法、final常量等元数据加载到方法区,这些在类被加载时就已经知道,不需对象的创建就能访问的,就是静态绑定的内容;需要等对象创建出来,使用时根据堆中的实例对象的类型才进行取用的就是动态绑定的内容。
多态就是父类引用指向子类对象,调用引用变量的方法时,总是表现出子类对象方法的行为,这将出现,调用相同类型的变量的方法,表现出不同的特征,这就是多态。
1.派生类的功能可以被基类的方法或引用变量所调用,这叫向后兼容,可以提高可扩充性和可维护性。
2.应用程序不必为每一个派生类编写功能调用,只需要对抽象基类进行处理即可。大大提高程序的可复用性。
应用场景
service多个实现类