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

执行结果是什么?

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

    本文导语:  看到一段代码,不知为什么是这个结果,大家有兴趣帮俺看看 class A{ public int Avar; public A(){ System.out.println("AAA"); dosomething(); } public void dosomething(){ Avar=1111; System.out.println("a.dosomething()"); } } public class orde...

看到一段代码,不知为什么是这个结果,大家有兴趣帮俺看看

class A{
public int Avar;
public A(){
System.out.println("AAA");
dosomething();
}
public void dosomething(){
Avar=1111;
System.out.println("a.dosomething()");
}
}

public class order2 extends A
{
public int Bvar=2222;
public order2(){
System.out.println("BBB");
dosomething();
System.out.println("Avar="+Avar);
}
public void dosomething(){
System.out.println("Bvar="+Bvar);
}
public static void main(String[] args){
new order2();
}


}
执行结果是
AAA
Bvar=0
BBB
Bvar=2222
Avar=0

|
记住继承类的初值化的次序:
1。进入基类CONSTRUCTOR,初值化基类变量:
  进入A的CONSTRUCTOR,Avar = 0;

2。执行基类CONSTRUCTOR的BODY:
   System.out.println("AAA"); ==> 输出   AAA
   dosomething(); ==> 调用 B::dosomething(),继承类变量还没有初值化,确省值是0
                  ==>输出   Bvar=0

3。初值化继承类变量
   Bvar = 2222
  
4。执行继承类CONSTRUCTOR的BODY
    System.out.println("BBB");  ==> 输出BBB
    dosomething();  调用 B::dosomething(),继承类变量已经初值化,Bvar = 2222
                  ==>输出   Bvar=2222
    System.out.println("Avar="+Avar);
                   ==>输出   Avar=0

|
你在main方法中实例化了order2,而order2继承了A类,A类的构造函数中先输出AAA然后调用了dosomething方法,但dosomething方法在order2类中被覆盖了,所以实际调用的是order2的dosomething方法,这时bvar是0,然后order2开始调用构造函数进行初始化,给bvar=2222,输出BBB调用dosomething()输出bvar=2222然后再输出avar,由于A类的dosomething()被order2覆盖,所以avar=0.

不知道各位是否认同?不对之处还请其他大侠指教

    
 
 

您可能感兴趣的文章:

  • 为何makefile中执行的结果和直接在命令行中执行结果不一致?
  • linux 命令执行结束后,想查看结果,但部分结果已经被覆盖,如何查看?
  • 在C程序里面执行unix的命令的时候怎么获取执行的结果了?
  • 为何XML文件用IE执行后的结果和原文件一样?没有执行?
  • 请问shell中执行一个命令后,如何不回显其执行结果。
  • SUSE10下,如何使用perl语言执行一条语句:从一台机器telnet到远端另一台机器,在远端机器上执行命令,并能获取到执行结果。请高手指点,Very 谢谢~
  • 请问JAVA如何执行(调用)操作系统命令,如dir,然后把执行结果存入变量或文件,谢谢!
  • QT中QProcess::execute的执行的结果的问题?
  • C调用SHELL命令执行结果
  • 求助:请问怎么获得在个一个脚本中执行的另外个脚本的返回结果,如执行成功或失败
  • 用Shell执行SQL得到的结果是乱码.
  • find命令执行结果含义,
  • 如何将命令的执行结果在屏幕输出的同时保存到文件
  • 为何makefile中执行的结果和直接在命令行中执行结果不一致? iis7站长之家
  • 执行命令 chmod 000 file 结果是什么?
  • 如何获得脚本执行的结果
  • AIX 5.3下调用windows 2000上的exe程序,且AIX下需要得到windows下程序执行的返回结果
  • 请问各位大侠,BShell里面怎么能够将命令执行的结果保存到变量里面?
  • 小试牛刀结果一头雾水!关于gcc编译后的a.out居然无法执行,系统说:我没有找到!:-(
  • unix shell如何在不把命令结果打出来的情况下判断命令是否可以执行呢?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • python下用os.execl执行centos下的系统时间同步命令ntpdate
  • 怎么在一个程序的执行过程中中止执行它?比如一个按钮的响应程序中,执行一半中止??20分!!!
  • linux下通过crond实现自动执行程序
  • 我用GCC生成的可执行文件无法直接在shell命令行下执行,这是为什么?可以用调试器调入执行。我用Red Hat7.0
  • linux下nm命令(显示可执行文件的符号信息)介绍以及常见nm命令用法举例
  • 如何实现一个线程组内多线程的非同不执行,即一个线程执行完毕后再执行下一个线程???
  • Microsoft IE MSHTML内存破坏远程代码执行漏洞
  • 请问:我发现如果在/usr/local/bin 与/usr/bin下都有同一个执行文件时,当在shell下执行时,只会执行/usr/local/bin,下的,怎么改过来?
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 我在UNIX下用PRO*C写了个程序,每次执行都得一个多小时,我想把它放到后台执行,也就是我想交给服务器执行,而我想产掉终端窗口,应该怎么做呢
  • linux下不使用sudo命令执行docker的操作步骤
  • 怎样执行可执行文件?
  • Mysql Select查询执行流程介绍及实例
  • redhat7.1下可执行文件不能执行????
  • C中用system系统调用执行command,执行过程中死锁,如何处理?
  • 在B shell里怎麽执行曾经执行过的命令
  • 请问JSP中的<jsp:forward page=""/>执行后,后边的操作还会执行吗?
  • 执行当前目录下可执行程序时前面必须要加上./才可以,如何解决?
  • 如何在LINUX中在系统启动后自动执行一个执行一个程序?
  • linux在脚本执行命令和直接在命令行执行命令有什么区别
  • shell 脚本 date 手动执行 和 放在init.d中自动执行的时间不一样


  • 站内导航:


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

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

    浙ICP备11055608号-3