【Java探索之旅】多态:重写、动静态绑定-二、动静态绑定

时间:2024-07-08 07:07:08

2.1 静态绑定:

也称为前期绑定(早绑定),即在编译时,根据用户所传递实参类型就确定了具体调用那个方法。典型代表函数重载。

静态绑定的条件包括:

  1. 变量的声明类型:静态绑定是根据变量的声明类型来决定调用哪个方法。因此,变量的声明类型必须是确定的,不能是多态类型。
  2. 编译时类型确定:在编译阶段,编译器会根据变量的声明类型来确定调用的方法,而不考虑实际运行时的对象类型。

2.2 动态绑定:

也称为后期绑定(晚绑定),即在编译时,不能确定方法的行为,需要等到程序运行时,才能够确定具体调用那个类的方法。

动态绑定的条件包括:

  1. 方法的重写:动态绑定需要存在父类和子类之间的方法重写,即子类重写了父类的方法。
  2. 发生向上转型:Animal animal = new Dog
  3. 父类引用:通过父类引用来调用父类和子类的重写方法。