java动态绑定机制

1.当在对象方法A里调用对象方法B时,实行动态绑定机制,A方法会暂时绑定过去运行类型里,然后优先在运行类型里找B方法,

2.当在对象方法里调用对象属性时,没有动态绑定机制,调用属性的方法在哪个类就在哪个类找属性。

 

public class Test {
    public static void main(String[] args) {
    A a = new B();
        System.out.println(a.b());//虽然a运行类型是B,但因为属性不会动态绑定,所以这个输出的age还是A类的age
        System.out.println(a.a());//a的运行类型是B,a()暂时绑定到B类,调用B类的b(),结果是3
    }
}

class A {
    int age;
    int num;

    public int a() {
        return b() + 2;
    }

    public int b() {
        return age;
    }
}

class B extends A {
    int age = 1;
    String name;

    public int b() {
        return age;
    }
}

 

上一篇:Vue.js 学习笔记(三)过滤器、实例及选项


下一篇:2.11 Go音乐播放器