Java方法重写与重载、动态绑定和静态绑定的区别

2025-05-29 06:55:07

1、方法重写,用于在继承中,子类重写父类的某个方法,JDK提供了一个注解 @Override 对子类中重写的方法进行标注。重写的方法在调用时,会动态绑定(即运行时绑定)到具体对象的类型上。

Java方法重写与重载、动态绑定和静态绑定的区别
Java方法重写与重载、动态绑定和静态绑定的区别
Java方法重写与重载、动态绑定和静态绑定的区别

2、方法重载,这个概念针对一个类中的多个同名但不同参的方法,参数不同包括参数类型不一致或者参数个数不一致。重载的方法在编译时根据参数的声明类型静态绑定到具体方法上,与运行时该参数的实际类型无关。

Java方法重写与重载、动态绑定和静态绑定的区别
Java方法重写与重载、动态绑定和静态绑定的区别

3、静态绑定,即编译时绑定,其作用是,保证方法调用、变量访问的正确性以及加快代码的运行速度。注意,所有方法调用、变量访问在编译时都会绑定到一个具体的对象上,但部分重写的方法在调用时会涉及到动态绑定。图示,成员变量只会根据变量的声明类型进行静态绑定,相似的还有,private修饰的方法、static修饰的方法以及final修改的方法,这几种方法都有一个共同特点,无法进行重写。

Java方法重写与重载、动态绑定和静态绑定的区别
Java方法重写与重载、动态绑定和静态绑定的区别
Java方法重写与重载、动态绑定和静态绑定的区别

4、动态绑定,即运行时绑定,相比静态绑定,动态绑定会降低代码的运行效率,但能为编程带来阌毡驰璨更强的灵活性,Java中的多态即利用动态绑定实现的特性。动态绑定只会出现在方法重写的场景中(可参考上述方法重写的示例)。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢