静态分派与动态分派


1. 静态类型[外观类型] => 方法执行版本 => 编译期确定


2. 实际类型 => 方法执行版本 => 运行期确定


静态解析与动态连接


1. 静态解析:符号引用(class 文件中能无歧义的定位到目标的一串符号),有一部分会在类加载阶段或者第一次使用阶段就转化为直接引用(指针,相对偏移量,间接定位的句柄)


2. 动态连接:另一部分在每一次运行期间转化为直接引用



重载与重写

1 分派


Java 重载 => 静态分派


Java 重写 => 动态分派


2.1 重载


  • 方法名相同,参数类型、参数个数、不同
  • 多态

2.2 重写


  • 基于继承关系,子类重写父类方法,通过动态绑定(方法名,返回值类型,参数 相同)实现
  • 子类访问修饰权限不能少于父类