当前位置:  技术问答>java相关

这个程序运行的结果是什么?

    来源: 互联网  发布时间:2015-02-10

    本文导语:  请你不要编译运行,看看运行结果是什么,并说明理由? class  vehicle { public int speed; public vehicle () { System.out.println("in the vehicle constructor"); speed = 10; } public void run() { System.out.println("The speed is : " +...

请你不要编译运行,看看运行结果是什么,并说明理由?

class  vehicle
{
public int speed;

public vehicle ()
{
System.out.println("in the vehicle constructor");
speed = 10;
}
public void run()
{
System.out.println("The speed is : " + speed);
}
}

public class Car extends vehicle
{
public int speed;

public Car()
{
System.out.println("in the Car constructor");
speed = 100;
}

public static void main( String[] args)
{
Car a = new Car();
a.run();
}
};

|
我看得不太明白,高手看明白了给小弟解释一下
Variables can also be overridden, it’s known as shadowing or hiding. But, member variable references are resolved at compile-time. So at the runtime, if the class of the object referred by a parent class reference variable, is in fact a sub-class having a shadowing member variable, only the parent class variable is accessed, since it’s already resolved at compile time based on the reference variable type. Only methods are resolved at run-time.
Also, methods access variables only in context of the class of the object they belong to. If a sub-class method calls explicitly a super class method, the super class method always will access the super-class variable. Super class methods will not access the shadowing variables declared in subclasses because they don’t know about them. (When an object is created, instances of all its super-classes are also created.) But the method accessed will be again subject to dynamic lookup. It is always decided at runtime which implementation is called. (Only static methods are resolved at compile-time)

|
in the vehicle constructor
in the Car constructor
The speed is : 10

|

in the vehicle constructor

in the Car constructor

The speed is : 10

|
in the vehicle constructor   在子类构造的时候先调用父类的构造器
in the car constructor       子类构造器中的打印
The speed is :10             run()来自vehicle,speed初始为10

如果你在Car类中覆盖来自vehicle的run()方法,那么打印speed的结果就是100了,比如在Car类中加入:
public void run()
{
System.out.println("The speed is:"+speed);
}

    
 
 

您可能感兴趣的文章:

  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • Linux下的程序是在内存中运行的吗?为什么在程序运行的时候可以删除程序文件?
  • Ubuntu程序开机自动启动设置(服务和自动运行配置文件)的几种方法
  • SecureCRT上运行一个JAVA程序,该程序类似一个在WINDOWS下一直运行的CMD窗口的东西,SecureCRT关掉后,JAVA还会继续运行吗?
  • windows下cmd命令提示符下让程序后台运行命令
  • telnet到主机去运行一个我编的程序,退出telnet时那个程序也不运行了,这是怎么回事?按程序逻辑它应该一直运行下去的。
  • python计算程序开始到程序结束的运行时间和程序运行的CPU时间
  • jsp程序运行一次后,再修改原jsp程序,为什么运行还是的还是原来的程序??
  • 我的linux程序 如何 在pc机器上运行。现在我用arm-linux-g++ 编译后的程序在我的嵌入设备上运行。
  • 在JB7中默认的情况下会为程序生成一个包,程序在JB7中可以正常运行,可是在JDK中却无法运行
  • 我用C在UNIX下写程序,生产文本,如何能让我的程序并行运行,好加快运行速度,举例说明。
  • 怎样在客户端(win2k svr)vc程序里使hp-ux服务器中的c程序运行,另外如何获得其运行结果?
  • 在LIUNIX中,在运行程序中,运行什么命令可以出现类似DOS的界面...谢谢.
  • 怎样让linux启动后不运行桌面而是直接运行某个应用程序呢?
  • 程序在windows下用visual运行正常,如何才能在linux下运行??
  • linux编写一个脚本判断程序是否在运行,如果没运行就重启这个软件。
  • 请问linux下查看某个程序的运行界面的程序是什么?
  • jbuilder下写的javabean与jsp程序正常运行,如何转到weblogic或其他的服务器上运行???
  • 运行程序后程序报错说操作不允许
  • ubuntu下用gcc编译的程序要怎样运行,为何运行不了?
  • 关闭putty(SSH程序)后如何让程序还在redhat上运行?
  • AIX 5.3下调用windows 2000上的exe程序,且AIX下需要得到windows下程序执行的返回结果
  • 一个程序两个结果,请高手分析原因
  • 如何将程序输出的结果重定向到另外的控制台
  • #请问nslookup和程序中使用gethostbyname为什么结果不同?
  • 在C程序里面执行unix的命令的时候怎么获取执行的结果了?
  • 运行的程序的结果答应出日志的问题
  • 菜鸟问题:为什么我的程序编译之后看不到运行结果?
  • 请问下面的程序为什么会得出这样的结果?
  • 请问以下程序结果,谢谢
  • 用gcc编译c程序能通过,为何没执行结果?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 重装服务器后IIS网站错误(应用程序中的服务器错误)
  • 为什么我在java程序里启动的一个程序在java程序关闭后,该程序的所有进程都关掉了
  • windows server2008上PowerBuilder程序系统错误解决方法
  • Linux 编程怎么样在程序开启一个程序,和关闭一个程序?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • 请问从一个java程序中如何调用另一java程序,并控制可以其状态(最小化、最大化、结束程序),还有怎样知道那个被调用的程序结束。
  • 程序员的八种级别,你属于哪一级?
  • 我的程序是用c写的gtk+程序,有个函数的参数要传给它图片的文件名,但是图片和原程序不在同一目录下怎么办?怎么在程序里指定文件的路径
  • 在docker容器中通过apt-get安装新的程序
  • 为什么linux下的C++程序这么少见? 请问那里有linux下的C++程序?什么类型的程序都可以.
  • linux下通过crond实现自动执行程序
  • 我写了个linux下的网络程序,程序在多个电脑间通信,但是我没有多个电脑,怎么调试这样的程序啊?
  • http协议介绍,文件上传分析及程序举例
  • 在java控制台程序中,可以用System.exit(0);使用一个程序终止,那么在servlet中如何使一个servlet程序终止呢?
  • 程序员赚钱致富的6种方法
  • 程序调用脚本,脚本启动另一个程序,如何让原始程序彻底释放资源?
  • HASH查找的程序实现及性能分析
  • linux下,一个程序如何向另一个程序发送消息,另一个程序如何接收
  • 程序员为了健康必看!早晨空腹喝水,是对还是错?
  • 请教!Linux系统C开发的程序,为什么我的程序运行时内存持续增长,程序退出后内存也没有降低?
  • 如何使用linux下gdb来调试python程序
  • 从定时从A程序调用B程序(B程序运行一下就退出)多次后,出现僵尸进程?如何解决?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3