Java的动态绑定机制(重要)

动态绑定机制说明:

1.当调用对象方法时,该方法会和该对象的内存地址(运行类型)绑定

2.当调用对象属性时,没有对象绑定机制,哪里声明,哪里使用

源代码:

java 复制代码
public class DynamicBinding {
    public static void main(String[] args) {
        A a = new B();
        System.out.println(a.sum());//40
        System.out.println(a.sum1());//30
    }
}
class A{//父类
    public int i = 10;
    public int sum(){
        return getl() + 10;
    }
    public int sum1(){
        return i + 10;
    }
    public int getl(){
        return i;
    }
}
class B extends A{
    public int i = 20;
    public int sum(){
        return i + 20;
    }
    public int getl(){
        return i;
    }
    public int sum1(){
        return i + 10;
    }
}

当把B类中的sum()注销掉,再去执行System.out.println(a.sum())

此时结果为30

java 复制代码
public class DynamicBinding {
    public static void main(String[] args) {
        A a = new B();
        //当调用对象方法时,该方法会和该对象的内存地址(运行类型)绑定
        //也就是说,调用的对象是哪个类型,就去找这个类型中的方法
        System.out.println(a.sum());//30
        //当执行到a.sum()中的return getl() + 10时,由于运行类型是B,所以会去调用B类中的
        //getl()方法,此时return i;返回的是B中的i值
        
        System.out.println(a.sum1());//当调用对象属性时,没有对象绑定机制,哪里声明,哪里使用
        //属性没有对象绑定机制,输出20
    }
}
class A{//父类
    public int i = 10;
    public int sum(){
        return getl() + 10;//20+10
    }
    public int sum1(){
        return i + 10;
    }
    public int getl(){
        return i;
    }
}
class B extends A{
    public int i = 20;
//    public int sum(){
//        return i + 20;
//    }
    public int getl(){
        return i;
    }
//    public int sum1(){
//        return i + 10;
//    }
}
相关推荐
SeaDhdhdhdhdh1 小时前
MCP Server 搭建与使用指南
java·ai·agent·mcp
李妍.1 小时前
02Numpy基础(上)
开发语言·python
TheBestRucy2 小时前
Python 九阳神功之贰:面向对象(下)
开发语言·python
YH55269842 小时前
GPT‑5.6 Sol 原本支持 1M 上下文,Codex 现已放开此前限制,如何看待这次调整?
java·jvm·人工智能·gpt·算法·chatgpt
AI_小站2 小时前
刚面完百度的 Agent 开发岗,我才发现:世界就是个巨大的草台班子
java·开发语言·人工智能·spring·百度·langchain
许彰午3 小时前
03-三种开发模式
java·架构
felixking3 小时前
C++20 协程
开发语言·c++·协程
涟漪海洋3 小时前
创建最新的JDK25镜像,非root环境启动
java
遥感知识服务4 小时前
从局部阈值、双极化到暗地表剔除:NASA OPERA DSWx-S1全球动态水体算法拆解
大数据·人工智能·深度学习·神经网络·算法·机器学习
晚风醉蝶4 小时前
1-13-TimSort
算法