标签: 初始化顺序
2013-08-01 10:13 879人阅读 评论(0) 收藏 举报
 分类:
java(8) 

版权声明:本文为博主原创文章,未经博主允许不得转载。

  1. package Study.Initialization;
  2. class Base{
  3. private String str1=init("str1");
  4. private String str2=init("str2");
  5. public static String str3=init("static str3");
  6. public Base(String str1,String str2){
  7. System.out.println("Run Construction Base");
  8. this.str1=str1;
  9. this.str2=str2;
  10. }
  11. protected static String init(String str){
  12. System.out.println(str);
  13. return str+" init";
  14. }
  15. }
  16. class Derived extends Base{
  17. private String str4=init("str4");
  18. public static String str5=init("static str5");
  19. public Derived(String str1,String str2,String str4){
  20. super(str1,str2);
  21. System.out.println("Run Construction Derived");
  22. this.str4=str4;
  23. }
  24. }
  25. public class extendInitialization {
  26. public static void main(String[] args) {
  27. System.out.println("run extendInitialization.main()");
  28. Derived d=new Derived("construction str1","construction str2","construction str4");
  29. System.out.println("----------------------------------------");
  30. Derived d2=new Derived("construction str11","construction str22","construction str44");
  31. }
  32. }

运行结果:

run extendInitialization.main()
static str3
static str5
str1
str2
Run Construction Base
str4
Run Construction Derived
----------------------------------------
str1
str2
Run Construction Base
str4
Run Construction Derived
总结:
   Derived的初始化顺序:
    1.按定义时的顺序初始化基类的static成员
    2..按定义时的顺序初始化扩展类的static成员
    (以上两条是对第一次定义扩展类对象时运行)
    3.按定义时顺序执行基类的指定初始化
    4.执行基类的构造函数 
    5 按定义时的顺序执行扩展类的指定初始化
    6.行扩展类的构造函数

java继承 初始化顺序的更多相关文章

  1. java 继承 初始化顺序

    面向对象三大特性: 封装,继承,多态 java 继承初始化顺序 先初始化父类对象, 在父类对象中先初始化父类属性,再初始化父类的构造方法,然后初始化子类对象,初始化子类对象的属性,初始化子类的构造方法 ...

  2. Java学习笔记二十三:Java的继承初始化顺序

    Java的继承初始化顺序 当使用继承这个特性时,程序是如何执行的: 继承的初始化顺序 1.初始化父类再初始子类 2.先执行初始化对象中属性,再执行构造方法中的初始化 当使用继承这个特性时,程序是如何执 ...

  3. Java提高篇——静态代码块、构造代码块、构造函数以及Java类初始化顺序

    静态代码块:用staitc声明,jvm加载类时执行,仅执行一次构造代码块:类中直接用{}定义,每一次创建对象时执行.执行顺序优先级:静态块,main(),构造块,构造方法. 构造函数 public H ...

  4. 【知识总结】Java类初始化顺序说明

    微信公众号:努力编程的小猪如有问题或建议,请公众号留言 Java类初始化顺序说明 一个类中包含如下几类东西,他们前后是有顺序关系的 静态属性:static 开头定义的属性 静态方法块: static ...

  5. JAVA的初始化顺序:

    JAVA的初始化顺序: 父类的静态成员初始化>父类的静态代码块>子类的静态成员初始化>子类的静态代码块>父类的代码块>父类的构造方法>子类的代码块>子类的构造 ...

  6. Java变量、Java对象初始化顺序

    局部变量与成员变量: 局部变量分为: 行参:在方法签名中定义的局部变量,随方法的结束而凋亡. 方法内的局部变量:必须在方法内对其显示初始化,从初始化后开始生效,随方法的结束而凋亡. 代码块内的局部变量 ...

  7. Android(java)学习笔记136:Java类初始化顺序

    Java类中初试化的顺序: 由此得出Java普通类初始化顺序结论: 静态变量 静态初始化块 变量 初始化块 构造器 由此得出Java继承类初始化顺序结论:     1 .继承体系的所有静态成员初始化( ...

  8. 【细说Java】Java变量初始化顺序

    Java的变量初始化顺序,对这里一直似懂非懂,面试的时候也经常被问到,但答的一直不好,现在整理记录一下,以后忘记了可以来看看. 程序分为两个部分,第一个部分不考虑继承,第二个部分考虑继承: (1)不考 ...

  9. JAVA的初始化顺序

    这里主要是介绍JAVA的类的初始化顺序,比较基础:主要是以例子演示为主: 例子一: 1 package com.cnblog.GDUTtiantian; 2 3 /** 4 * 5 * @author ...

随机推荐

  1. CSS 清除浮动 clear 属性

    CSS 清除浮动 clear 属性用于设定元素哪一侧不允许有其他浮动元素(而并非取消元素的浮动). 可能的取值如下: 取值 说明 none 默认值,允许两侧都有浮动元素 left 左侧不允许有其他浮动 ...

  2. 添加operations模块

    添加operations模块,models内容为: from django.db import models from datetime import datetime from users.mode ...

  3. TreeSet实现原理及源码分析

    类似于HashMap和HashSet之间的关系,HashSet底层依赖于HashMap实现,TreeSet底层则采用一个NavigableMap来保存TreeSet集合的元素.但实际上,由于Navig ...

  4. 关于Fildder更改ip简单配置

    之前由于我们公司之前的域名备案 所以临时购买了一个域名主机,可能你如果不配置的话有时候看不到你自己app一些抓包信息具体分为以下几步 配置Filter过滤器记得勾选 第一次进入的时候 2.然后我们再H ...

  5. 修改程序版本工具(ResHacker)使用说明20140902

    有时候我们需要自己修改dll版本号,那么ResHacker工具可以帮我们在不需要开发帮助下可以自己修改版本号: 工具:直接复制出来即可 1.双击打开工具 2.将dll文件或者exe文件拖拽进来,或者[ ...

  6. Java中高级面试题整理

    一.基础知识: 1)集合类:List和Set比较,各自的子类比较(ArrayList,Vector,LinkedList:HashSet,TreeSet): 2)HashMap的底层实现,之后会问Co ...

  7. 根据显示器的分辨率,加载不同CSS样式表

    <link rel="stylesheet" type="text/css" id="css"><script langu ...

  8. couldn't import dot_parser

    这个错误,你不要信它,实际可以画图了.害我又降级安装,真是气死了.

  9. Android上玩玩Hook:Cydia Substrate实战

    作者简介:周圣韬,百度高级Android开发工程师,博客地址:http://blog.csdn.net/yzzst 了解Hook 还没有接触过Hook技术读者一定会对Hook一词感觉到特别的陌生,Ho ...

  10. Jmeter查看结果树

    取样结果: Thread Name: test 1-2                                                     线程名称:测试1 - 2Sample S ...