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

急问题:一个关于类继承的概念问题,它的执行顺序百思不得其解

    来源: 互联网  发布时间:2015-03-05

    本文导语:  下面的程序中类B继承了类A,它们分别有自己的构造函数,执行后的结果想不明白(已列在程序下面),请教高手其中的道理和程序执行的顺序,谢谢。 class A {   public int Avar;   public A() {     System.err.println("AAA...

下面的程序中类B继承了类A,它们分别有自己的构造函数,执行后的结果想不明白(已列在程序下面),请教高手其中的道理和程序执行的顺序,谢谢。

class A {
  public int Avar;
  public A() {
    System.err.println("AAA");
    doSomething();
  }
  public void doSomething() {
    Avar = 1111;
    System.err.println("A.doSomething()");
  }
}

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


结果:
AAA
Bvar=0
BBB
Bvar=2222
Avar=0

|
1.在类加载的时候会执行静态程序块(这里没有)
2。new B()的时候先执行父类的构造函数 A(),  所以:AAA
3。B中的doSomething()覆盖了父类方法,因而在A()中的doSomething()调用的是B()中的方法,取的变量还是A的,缺省值 = 0
4。执行B(),剩下的明白了吧!A.doSomething()一直没有运行

|
请仔细研读
if you call "new Class()":
First, the memory for the complete object is allocated and the default
values for the instance variables are assigned(0 or null). 
Second, the top-level constructor is called and follows these steps 
recursively down the inheritance tree:
1. Bind constructor parameters
2. If explicit this(), call recursively and then skip to step 5
3. Call recursively the implicit or explicit super(...), except for
   Object because Object has no parent class
4. Execute explicit instance variable initializers
5. Execute body of current constructor

|
问过好多次了
文档中心有类似文章

    
 
 

您可能感兴趣的文章:

  • killall 奇怪的问题,百思不得其解
  • 一个百思不得其解的异常问题
  • 关于jdbc查询问题,百思不得其解!
  • dup2的问题,百思不得其解,求教,谢谢
  • 一个session问题,小弟百思不得其解,望各位大虾指点一二!!!
  • 百思不得其解,vmvare上网问题!
  • 关于一个百思不得其解的问题。很难的呦!
  • 各位新年好,我这儿有个问题,百思不解,请帮忙
  • 一个关于简单函数调用的问题,百思不得其解
  • 请教一个驱动与设备号对应的问题,百思不得其解
  • 关于usb键盘驱动中的百思不解的问题
  • 一个百思不解的问题
  • Unix,百思不得其解的问题,一次有趣的经历
  • fork() 父子进程执行顺序问题
  • 关于linux命令参数顺序的问题
  • aCC 链接库时顺序问题
  • 从jsp想oracle插入记录的顺序问题
  • 依赖的执行顺序问题
  • 请问考试的顺序问题?
  • 关于RAW套接口收到的数据报的IPv4的头部的字节顺序问题?
  • 深入解析mysql中order by与group by的顺序问题
  • 关于显示顺序问题
  • jquery中ajax函数执行顺序问题之如何设置同步
  • 问一个关于java小程序执行顺序的问题
  • 关于父子进程执行顺序的问题
  • 谁能搞定最头痛的问题或给点建议:JBuilder6的大BUG——按文件名顺序编译,经常找不到文件名靠后的类
  • 请教个问题sockfd select(顺序问题)..在线等.....急
  • 诡异的问题,关于应用程序调用驱动内函数时的执行顺序
  • 函数参数入栈顺序以及参数地址间隔的问题
  • 学习jsp和servlet的问题(相互关系,学习顺序,推荐书籍)。请大家指教。谢谢!
  • JApplet执行顺序问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • 简单问题简单问题简单问题简单问题
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • 小问题,急问题,重大问题!!!
  • sharepoint 2010中item.Update()和item.SystemUpdate 修改数据版本问题解决
  • 弱弱的一问,linux下的中文问题及网络问题,分不是问题
  • 八个问题帮你快速了解Docker
  • 请教两个小问题:一个cgywin下使用vi的问题,另一个socket的问题
  • 错误:将'const x'作为'x'的'this'实参时丢弃了类型限定问题解决
  • 网页的编码问题!或者java的编码问题,由此引出一条解决中文问题的思路
  • nginx Windows版相关问题及使用说明
  • 死锁的问题 多级锁定问题 循环锁定问题
  • vs2010下禁用vmware的方法以及解决vmware插件导致vs2010变慢的问题
  • [问题]双系统出现的问题!求问题的原因和解决办法!
  • Linux下时钟同步问题:Clock skew detected原因分析及解决方法
  • 初学者问题。一个是编译hello world的问题,一个是配置ssh的问题
  • c/c++服务器程序内存泄露问题分析及解决
  • C程序问题:哪个高手帮我解释下下面的问题,主要是a[0]和&[0] 的区别 和编译器的问题??
  • ​部署 Docker 前必须问自己的四个问题
  • swing的问题还是jbuiler的问题??
  • spring的事务类型及spring和hibernate可能导致的问题分析
  • 菜鸟第一次安装红帽子7.2的一箩筐问题。每个问题会开个帖子,各放100分!请有安装经验的老鸟们帮忙解决。第二个问题:什么是LILO?怎么样


  • 站内导航:


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

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

    浙ICP备11055608号-3