2.1 静态绑定:
也称为前期绑定(早绑定),即在编译时,根据用户所传递实参类型就确定了具体调用那个方法。典型代表函数重载。
静态绑定的条件包括:
- 变量的声明类型:静态绑定是根据变量的声明类型来决定调用哪个方法。因此,变量的声明类型必须是确定的,不能是多态类型。
- 编译时类型确定:在编译阶段,编译器会根据变量的声明类型来确定调用的方法,而不考虑实际运行时的对象类型。
2.2 动态绑定:
也称为后期绑定(晚绑定),即在编译时,不能确定方法的行为,需要等到程序运行时,才能够确定具体调用那个类的方法。
动态绑定的条件包括:
- 方法的重写:动态绑定需要存在父类和子类之间的方法重写,即子类重写了父类的方法。
- 发生向上转型:Animal animal = new Dog
- 父类引用:通过父类引用来调用父类和子类的重写方法。