Java基础-动态绑定机制

package com.hspedu.dynamicbind_;

import org.junit.Test;

public class TestDynamicBind {

    @Test
    public void testDynamicBind() {

        Base sub = new Sub();

        /**
         * 动态绑定机制:调用对象方法的时候,该方法会和对象的内存地址/运行类型绑定
         *  所以sub调用方法时,绑定的运行类型时Sub,
         *  Sub没有getSum则调用父类的getSum方法,其中调用getI方法则是调用Sub类的getI方法
         */
        System.out.println(sub.getSum());
    }
}

class Base {
    int i = 10;

    public int getI() {
        return i;
    }

    public int getSum() {
        return getI() + 10;
    }
}

class Sub extends Base {
    int i = 20;

    public int getI() {
        return i;
    }
}

 

posted @ 2022-05-09 16:52  柯南同学  阅读(36)  评论(0编辑  收藏  举报