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。

相关推荐
venus601 分钟前
多网卡如何区分路由,使用宽松模式测试网络
开发语言·网络·php
廋到被风吹走1 分钟前
【配置中心】Nacos 配置中心与服务发现深度解析
开发语言·服务发现·php
专家大圣2 分钟前
Tomcat+cpolar 让 Java Web 应用跨越局域网随时随地可访问
java·前端·网络·tomcat·内网穿透·cpolar
予枫的编程笔记2 分钟前
【Java进阶】深度解析Canal:从原理到实战,MySQL增量数据同步的利器
java·开发语言·mysql
Filotimo_3 分钟前
在java后端开发中,LEFT JOIN的用法
java·开发语言·windows
Swift社区3 分钟前
在Swift中实现允许重复的O(1)随机集合
开发语言·ios·swift
承渊政道3 分钟前
C++学习之旅【C++Vector类介绍—入门指南与核心概念解析】
c语言·开发语言·c++·学习·visual studio
2301_797312265 分钟前
学习Java43天
java·开发语言
程序员老徐10 分钟前
Spring Security 是如何注入 Tomcat Filter 链的 —— 启动与请求源码分析
java·spring·tomcat
冰暮流星11 分钟前
javascript之do-while循环
开发语言·javascript·ecmascript