对"继承和初始化"的思考

原创 2008年09月28日 08:28:00

class Insect
{
 private int i =9;
 protected int j;
 Insect(){
  System.out.println("i="+i+",j="+j);
  j=39;
 }

 private static int x1=
  print("static Insect.x1 initialized");
 static int print(String s){
  System.out.println(s);
  return 47;
 }

}
public class Beetle extends Insect
{
 private int k=print("Beetle.k initialized");
 public Beetle(){
  System.out.println("k="+k);
  System.out.println("j="+j);
 }
 private static int x2=
  print("static Beetle.x2 initialized");
 public static void main(String [] args)
 { 
  System.out.println("Beetle constructor");//1
  Beetle b=new Beetle();//2
 }
}

这是thinking in Java 中的一个程序,开始很不理解,查了很多资料,参考了很多网友的意见后,终于释然.

特做如下注释:

流程如下:

1.加载:Beetle.class ->加载Insect.class->对基类中的static变量初始话->对导出类中的static 变量进行初始化->进到main()中,执行

语句System.out.println("Beetle constructor");//1->执行语句Beetle b=new Beetle();//2->调用构造器Beetle(){}->所以执行默认加载到Beetle(){}中的构造器Insect(){}所以要加载Insect实例,->对class Insect中的非静态变量初始化,调用Insect(){}生成Insect实例->执行
class Beetle中的非静态变量的初始化->执行Beetle(){}中的其它语句.

OK!终于释然!

Happy!!

HoooooooooHooooooo!!

HaaaaaaaaaaaHaaaaaaaa!!


 

java继承中父类、子类的初始化过程

问题:类变量、成员变量、静态代码块、非静态代码块在父类和子类的初始化和执行状况 代码如下: package ss; //父类 class Test4{ private int x; pri...
  • woshichuanqihan
  • woshichuanqihan
  • 2015年10月20日 15:26
  • 2005

C++中组合和继承的初始化

在C++中单个类的初始化比较简单就略过不说。 当一个类继承了另外一个类,或者是一个类中还存在一个类   class A{ 、、、 }; class B { 、、、 }; class...
  • zhouyelihua
  • zhouyelihua
  • 2014年08月13日 21:35
  • 2835

我对职业规划和未来发展的一些思考

本文较为全面地阐述了,作为一个一线城市的IT技术人员,我对职业规划和未来发展的一些思考。 首先从生活中的困惑迷茫谈起,然后简要介绍了我对婚姻和事业的一点看法,接下来深入阐述了我一些核心价值观和实践, ...
  • FansUnion
  • FansUnion
  • 2013年10月21日 12:17
  • 11097

对微信小程序的思考

这一段微信小程序很热,不断被刷屏,这里我也凑凑热闹谈谈对微信小程序的思考。       微信小程序从技术上说没什么大的革新,不过是依附于微信运行的JS程序,张小龙说微信小程序是PC时代网页应用的回归,...
  • GooHong
  • GooHong
  • 2017年01月12日 10:35
  • 630

对云计算时代软件技术发展的若干思考和实践和软件工程技术思索 读后感

观《对云计算时代软件技术发展的若干思考和实践》(梅宏)后感     看完这篇文章,感觉云里雾里的,头脑有点蒙了。什么是云计算?云计算有着不同的定义,作者的观点是:云计算在某种意义上,它就是一种新一轮...
  • u012430383
  • u012430383
  • 2013年10月18日 22:39
  • 1420

c++多重继承 和 初始化列表

#include using namespace std; class human { public: human(int); virtual ~human(){cout virtual...
  • leichunlei2008
  • leichunlei2008
  • 2014年10月27日 11:51
  • 889

java继承 初始化顺序

package Study.Initialization; class Base{ private String str1=init("str1"); private String str2=i...
  • yunzhongguwu005
  • yunzhongguwu005
  • 2013年08月01日 10:13
  • 2603

c++——继承类中的子对象和基类对象的初始化

为什么研究临时对象? 主要是为了提高程序的性能以及效率,因为临时对象的构造与析构对系统开销也是不小的,所以我们应该去了解它们,知道它们如何造成,从而尽可能去避免它们。临时对象是可以被编译器感知的。 ...
  • u011409995
  • u011409995
  • 2014年09月16日 14:25
  • 1659

对数学的思考(转载)

对数学的思考(转载) -- 最近因为工作关系,看了一些数学书。 我以TAMU的两位教授所著的一本小书为例发表一些浅见。 该书名为A First Course in Wavelets with Four...
  • powerpanda
  • powerpanda
  • 2005年11月23日 18:29
  • 6269

本人对大脑的一些思考——思维方式图像化

开头本文是本人对大脑(或称思维方式)的一些思考,其中观点完全来源于平时不由自主的遐想,本人不曾涉及过文中涉及的相关领域(我只是一个入门程序员orz)。...
  • AbstractSky
  • AbstractSky
  • 2015年09月30日 20:43
  • 3118
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:对"继承和初始化"的思考
举报原因:
原因补充:

(最多只允许输入30个字)