java动态绑定机制

规则

  1. 调用对象方法时,该方法会和对象的运行类型绑定。
  2. 调用对象属性时,没有动态绑定机制,哪里声明哪里使用。

例子:

java 复制代码
class Base{
    public int a=10;
    public int getA(){return a;}
    public int getSum(){
        return 10+getA();//这里会调用Sub类中的getA()
    }
    public int getBaseA(){return a;}
}
class Sub extends Base{
    public int a =20;
    public int getA(){return a;}
}

public static void main(String[] args){
        Base b=new Sub();//多态
        System.out.println(b.getSum()); //规则1  输出30
        System.out.println(b.getBaseA());//规则2 输出10
    }

规则1:

最后的输出为 30。

因为动态绑定机制的原因,b.getSum()方法与b的运行类型(Sub)绑定,b.getSum()中调用的getA()实际为Sub类中的getA(),即10+20最终返回30。

规则2:

在调用b.getBaseA()时,因为变量没有动态绑定,所以直接找到了Base类中的a=10,所以输出为10。

相关推荐
奋斗的小乌龟7 小时前
动态创建Agent02
java
吃好睡好便好7 小时前
用while循环语句求和
开发语言·学习·算法·matlab·信息可视化
ZFSS7 小时前
Localization Translate API 集成与使用指南
java·服务器·数据库·人工智能·mysql·ai编程
TechWayfarer7 小时前
查询IP所在地的3种方案:从API到离线库,风控场景怎么选?
开发语言·网络·python·网络协议·tcp/ip
摇滚侠7 小时前
Java 零基础全套教程,集合框架,笔记 153-163
java·开发语言·笔记
nannan12327 小时前
后端技术栈梳理
java
程序员榴莲7 小时前
Python 单例模式
开发语言·python·单例模式
L、2188 小时前
CANN算子开发调试实战:从“Segmentation Fault“到定位根因的完整流程
java·开发语言
狗凯之家源码网8 小时前
基于PHP的多语言跨境电商B2B2C商城系统技术解析
开发语言·php
索木木9 小时前
NCCL SHARP 和 TREE算法
java·服务器·算法