考虑下面的示例代码

class MyClass {

public String var = "base";

public void printVar() {

System.out.println(var);

}

}

class MyDerivedClass extends MyClass {

public String var = "derived";

public void printVar() {

System.out.println(var);

}

}

public class Binding {

public static void main(String[] args) {

MyClass base = new MyClass();

MyClass derived = new MyDerivedClass();

System.out.println(base.var);

System.out.println(derived.var);

base.printVar();

derived.printVar();

}

}

它给出以下输出

base

base

base

derived

方法调用在运行时解析,并按预期调用正确的重写方法。

变量访问在编译时解决,我后来学到。

我期待输出as

base

derived

base

derived

因为在派生类中,var阴影的重定义是基类中的一个。

为什么变量的绑定发生在编译时间而不是在运行时?这只是出于性能原因吗?

java编译时绑定_为什么Java在编译时绑定变量?相关推荐

  1. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

  2. java 命令行 编译 jar文件_用命令行编译java并生成可执行的jar包

    如果想用java编写一个可视化小程序,碰巧手头没有IDE的话,可以用命令行来完成编译.打包等工作. 拿自己编写的"java记事本"为例,介绍一下这个过程: 1.编写源代码. 编写源 ...

  3. java 编译 解释执行_关于Java的编译执行与解释执行

    编程语言分为低级语言和高级语言,机器语言.汇编语言是低级语言,C.C++.java.python等是高级语言. 机器语言是最底层的语言,能够直接执行.而我们编写的源代码是人类语言, 计算机只能识别某些 ...

  4. java 12306 模拟登陆_请教java尝试模拟登录12306时遇到的一个问题

    展开全部 首先12306网站前32313133353236313431303231363533e78988e69d8331333363386133缀为"https://" 表明是用 ...

  5. java 反编译class文件_用Java实现JVM第三章《解析class文件》

    解析class文件 案例介绍 本案例主要介绍通过java代码从class文件中解析:class文件.常量池.属性表: 作为类(或者接口)信息的载体,每个class文件都完整地定义了一个类.为了使jav ...

  6. java是什么格式_是java格式

    错误:编码GBK的不可映射字符的解决办法 最近在重新补javaSE的基础,编辑器编写完代码以后,在控制台运行代码段的时候,出现了以下的错误提示:错误:编码GBK的不可映射字符 在通过查询谷哥和度娘以后 ...

  7. java ee开发环境_设置Java EE 6开发环境

    java ee开发环境 本教程简要说明了如何设置典型的环境来开发基于Java EE 6的应用程序. 除了可以正常工作的Windows XP客户端具有足够的CPU能力和内存外,本教程没有其他先决条件. ...

  8. java pdf插件下载_免费java pdf控件

    云原生的概念和理论体系非常的完备,but talk is cheap , show me the code ! 但是作为一名程序员,能动手的咱绝对不多BB,虽然talk并不cheap , 能跟不同层次 ...

  9. java account函数的_用Java进行同时函数调用 - java

    在我的应用程序中,我以以下方式加载缓存. 加载用户缓存loadUserCache(); 加载帐户缓存loadAccountCache(); 加载客户缓存loadCustomerCache(); 上述每 ...

  10. java resources目录 编码_关于Java项目读取resources资源文件路径

    在看此篇博客是建议清楚classpath代表的路径,getServletContext().getRealPath("/")的含义,idea中项目编译后的目录格式,resoures ...

最新文章

  1. 万维网与HTTP协议
  2. 将矩阵转为一行_矩阵与矩阵乘积简介
  3. php递归面包屑,php可应用于面包屑导航的递归寻找家谱树实现方法
  4. Android透明到白色滑动渐变,Android中Toolbar随着ScrollView滑动透明度渐变效果实现...
  5. pyqt label上的图片旋转_python中tkinter入门之config、Scale、Canvas和导入图片
  6. uniDBGrid导入数据库(转红鱼儿)
  7. android+动画悬浮窗口,悬浮窗能实现自定Animation动画效果吗?
  8. 数字图像处理-图像复原
  9. 简单典型二阶系统_反馈控制系统的性能
  10. LNMP一键安装脚本使用 离线安装
  11. ABB机器人FOR循环指令
  12. echarts饼状图去除他的划过放大效果。
  13. 【MODIS数据处理#11】例六:绘制NDVI多年变化趋势空间分布图
  14. 【新手教程】51Sim-One Cloud 2.0 创建你的第一个案例
  15. 荣耀8c鸿蒙,【荣耀畅玩8C评测】千元标配4GB大内存 荣耀8C给你越级体验-中关村在线...
  16. 基于SpringBoot+EasyExcel+vue3实现excel表格的导入和导出
  17. 计算机辅助翻译优缺点,计算机辅助翻译优缺点
  18. 在springboot中使用jsp,设置webapp目录时的操作步骤
  19. 算法题解——将字符串转化为ip地址
  20. PicoZense TOF 深度摄像头技术参数 | AIRCamera,DCAM710,DCAM100

热门文章

  1. oracle驱动的区别吗,oracle10g下JDBC驱动包的区别
  2. 木门怎么打_装门框,只打发泡剂一点不牢固!如今门套下沉,气得邻居直跺脚!...
  3. C语言 5个数最值问题
  4. .net from 关闭事件_libVLC 事件机制
  5. java 长整型long_C语言和java 长整型为何打印不同?
  6. C/C++[codeup 2025]比较字符串
  7. 基于近邻法的分类器设计
  8. k-means 及其改进 数库
  9. 3 sum python
  10. 561. 数组拆分 I