java的多态性.所谓静态绑定就是在程序编译时就绑定的.java中的变量都是静态绑定的,方法的话只有static和final(所有private默认是final的)是静态绑定的.
就是在编译的时候已经决定了变量的值和应该调用哪个类的方法.你要把它同动态绑定联系起来才好理解.例如:
class A {
static void method1() {
System.out.println("A.method1()");
}
void method2() {
System.out.println("A.method2()");
}
}
public class B extends A{
// will not override A.method1()
static void method1() {
System.out.println("B.method1()");
}
// will override the A. method2()
void method2() {
System.out.println("B.method2()");
}
public static void main(String[] args) {
A a = new B();
a.method1(); //因为A里面的method1是static,编译时就静态绑定了,所以输出 A.method1()
a.method2(); //而method2()不是static方法,a是由B new出来的,执行的时候会执行new它的那个类的method2()方法,所以输出B.method2(),这是java的多态性
}
}
JAVA中的静态绑定和动态绑定
最新推荐文章于 2024-10-28 22:07:24 发布
本文探讨了Java中多态性的概念及其实现方式,重点介绍了静态绑定与动态绑定的区别。通过具体示例展示了静态绑定如何在编译时确定方法调用,并解释了静态方法与非静态方法的不同行为。

67

被折叠的 条评论
为什么被折叠?



