Java动态绑定机制

示例一

public class DynamicBindindMechanism {
    
    
    public static void main(String[] args) {
    
    
        // Java有动态绑定机制,即:成员方法在执行过程中,JVM会将方法和当前调用对象实际内存绑定
        //属性没有动态绑定机制,在哪里声明就在哪里使用
        AAA aaa = new BBB();
        System.out.println(aaa.getResult());//结果是20
    }
}

class AAA {
    
    
    int i = 20;

    public int getResult() {
    
    
        return i;
    }
}

class BBB extends AAA {
    
    
    int i = 10;
}

示例二

public class DynamicBindindMechanism {
    
    
    public static void main(String[] args) {
    
    
        // Java有动态绑定机制,即:成员方法在执行过程中,JVM会将方法和当前调用对象实际内存绑定
        //属性没有动态绑定机制,在哪里声明就在哪里使用
        AAA aaa = new BBB();
        System.out.println(aaa.getResult());//结果是40
    }
}

class AAA {
    
    
    int i = 20;

    public int getResult() {
    
     //属性没动态绑定机制,在这里调用了getResult()方法,所以就直接使用了这里的i=20
        return getInt() + i; //由于实际对象绑定的有getInt()方法,所以使用的是对象自己的getInt()方法 20
    }

    public int getInt() {
    
    
        return 10;
    }
}

class BBB extends AAA {
    
    
    int i = 10;

    public int getInt() {
    
    
        return 20;
    }
}

猜你喜欢

转载自blog.csdn.net/pageniao/article/details/106433315