首页 > 其他分享 >静态绑定和动态绑定

静态绑定和动态绑定

时间:2023-08-11 20:05:42浏览次数:30  
标签:调用 静态 方法 绑定 编译 动态 过程

在面向对象程序中,绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来,是一个把过程调用和响应调用所需要执行的代码加以结合的过程。绑定分为静态绑定(前期绑定)和 动态绑定(后期绑定)。

(1)静态绑定:指在程序编译过程中,把函数(方法或者过程)调用与响应调用所需的代码结合的过程。在程序执行前就已经被绑定(编译过程就确定调用方法所属类),静态绑定发生于编译期,因此不能利用任何运行期的信息,它针对函数调用和函数的主体,或变量与内存中的区块。

(2)动态绑定:指在程序运行期间(非编译期)判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。所以动态绑定是在程序运行时进行的,因此,一个给定的过程调用和代码的结合直到调用发生时才进行。动态绑定是和类的继承以及多态相联系的,在继承关系中,子类是父类的一个特例,所以父类对象可以出现的地方,子类对象也可以出现。因此在运行过程中,当一个对象发送消息请求服务时,要根据接收对象的具体情况将请求的操作与实现的方法进行连接,即动态绑定。动态绑定针对运行期产生的访问请求,只用到运行期的可用信息。在面向对象的代码中,动态绑定意味着决定哪个方法被调用或哪个属性被访问,将基于这个类本身而不基于访问范围。

标签:调用,静态,方法,绑定,编译,动态,过程
From: https://blog.51cto.com/zdytesting/7051009

相关文章

  • 动态规划大全oi-wiki
    背包DP背包DP区间DP区间DPDAG上的DPDAG上的DP树形DP树形DP状压DP状压DP数位DP数位DP插头DP插头DP计数DP计数DP动态DP动态DP概率DP概率DPDP优化DP优化......
  • FTData063468_000001升级脚本出错,错误信息:SQL 脚本: 18.000.000.0048 DATA_DSTR_EAP_M
    一、问题:cjt15.0版本升级到18.0提示SQL脚本:18.000.000.0048DATA_DSTR_EAP_Mix_NL-11001出错:已在列上绑定了DEFAULT023-08-1019:46:39开始升级....2023-08-1019:46:39正在校验系统信息,请稍候...2023-08-1019:46:39[(000001)****]:开始升级2023-08-1019:46:39[(......
  • 软件开发入门教程网 Search之C++ 动态内存
       C++基本的输入输出   ......
  • 博弈论——完全信息静态博弈(二)
    完全信息静态博弈是指参与者在做出决策之前拥有所有可能的信息,包括对手的策略和利益。因此,每位参与者可以准确地评估各种选择对自己和对手的影响。这种情况下,决策的结果是确定性的,不受随机因素影响。参与者通过理性分析和预测对手的行为,以最大化自身利益。完全信息静态博弈广泛应......
  • vue 实现动态表单点击新增 增加一行输入框
    点击增加后会新增一行,点击每行后面的删除图标则会删除该行,新增按钮只会出现在最后一行<el-col:span="12"class="mb20"> <el-form-item :label="index==0?'选择原材料':''" v-for="(item,index)inform.productItemList"......
  • 动态规划算法详解
    dp详解dp详解_不怕困难的博客dp模板C++动态规划模板汇总大全_不怕困难的博客......
  • go kratos protobuf 接收动态JSON数据
    前言google.protobuf.Struct是GoogleProtocolBuffers中的一种特殊类型,用于表示动态的键值对数据。它可以存储任意类型的数据,并提供了方便的方法来访问和操作这些数据。Struct类型通常用于在不事先知道数据结构的情况下传递和处理配置、参数或其他动态数据。https://pkg.g......
  • 【Archaius技术专题】「Netflix原生态」动态化配置服务之微服务配置组件变色龙
    推荐超值课程:点击获取前提介绍如果要设计开发一套微服务基础架构,参数化配置是一个非常重要的点,而Netflix也开源了一个叫变色龙Archaius的配置中心客户端,而且Archaius可以说是比其他客户端具备更多生产级特性,也更灵活。*在NetflixOSS微服务技术栈中,几乎所有的其它组件(例如Zuul......
  • spring多数据源动态切换的实现原理及读写分离的应用
    简介AbstractRoutingDataSource是Spring框架中的一个抽象类,可以实现多数据源的动态切换和路由,以满足复杂的业务需求和提高系统的性能、可扩展性、灵活性。应用场景多租户支持:对于多租户的应用,根据当前租户来选择其对应的数据源,实现租户级别的隔离和数据存储。分库分表:为了提高性能......
  • 7.静态库和共享(动态)库
    7.静态库和共享(动态)库7.1库的介绍什么是库库是二进制文件,是源代码文件的另一种表现形式,是加了密的源代码;是一些功能相近或者是相似的函数的集合体。使用库有什么好处▶提高代码的可重用性,而且还可以提高程序的健壮性;▶可以减少开发者的代码开发量,缩短开发周期。库制作完......