黑马程序员技术博客之类的加载顺序
2014-02-20 22:31
169 查看
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
下面是我也的一段代码,用于显示类的加载顺序,如果有哪位大神解释一下底层的调用原理就好了。
这个是我看张孝祥老师Java基础视频时写的,当时就是为了弄明白类的加载顺序,让自己印象更深刻一点。
下面是我也的一段代码,用于显示类的加载顺序,如果有哪位大神解释一下底层的调用原理就好了。
/* 加载顺序如下: 1、父类静态成员(仅加载一次) 2、子类静态成员(仅加载一次) 3、父类代码块 4、父类构造方法 5、子类代码块 6、子类构造方法 面型对象的三个特点: 1、封装 2、继承 3、多态 */ class parent { static String name = "parentHello"; int num = 1; { System.out.println("parent block...."+num); } static { System.out.println("parent static block"); } public parent() { speak(); System.out.println("parent construstor.........."); } public static void print() { System.out.println("static emthod of parent"); } void speak() { System.out.println("parent speak Java"); } } class child extends parent { static String name = "childhello"; int num = 2; { System.out.println("child block...."+super.num+"..."+num); } static { System.out.println("child static block"); } public child() { System.out.println("child construstor"); } public static void print() { System.out.println("static emthod of child"); } void speak()//覆盖:方法的返回值类型、方法名、参数列表完全相同 //权限大于或等于父类的访问权限 { super.speak(); System.out.println("child speak java"); } } public class tellMeOrder { public static void main(String[] args) { child cc = new child(); System.out.println("****************************************"); parent c = new child();//多态:父类引用指向子类对象 System.out.println("****************************************"); System.out.println(c.name);//成员变量的隐藏,不会被覆盖 System.out.println(cc.name); System.out.println(c.num); System.out.println(cc.num); System.out.println("****************************************"); c.speak();//父类的引用指向子类对象的方法,非静态方法即对象的方法 //虽然引用类型为父类,但所指向的地址是子类的对象 c.print();//父类的引用指向父类的静态方法,静态方法属于类而不是对象 cc.print(); } }
这个是我看张孝祥老师Java基础视频时写的,当时就是为了弄明白类的加载顺序,让自己印象更深刻一点。
相关文章推荐
- 【黑马程序员】技术加强之代理与动态加载类
- 黑马程序员技术博客之copy小程序
- 黑马程序员技术博客之枚举
- 黑马程序员——黑马IOS面试学习三:Objective-C 中一些关键字和概念的总汇——黑马 ios 技术博客
- 黑马程序员(技术博客书写标准)
- 黑马程序员——Objective-C语言简介——黑马 ios 技术博客
- 黑马程序员——IOS学习六:Date Picker, Picker View选取器控件初步——黑马 ios 技术博客
- 【黑马程序员】Java学习技术博客——银行业务调度系统
- 黑马程序员技术博客之堆排序
- 淘宝的新Sprite方法——使用Img Sprite技术对按钮加载顺序优化的简单研究
- 黑马程序员——Objective-C分类 (category)和扩展(Extension)——黑马 ios 技术博客
- 黑马程序员——Objective-C中3种枚举方法耗时比较——黑马 ios 技术博客
- 黑马程序员——Objective-C程序设计(第4版)学习笔记之02-Objective-C 编程环境概述——黑马 IOS 技术博客
- 黑马程序员——Objective-C程序设计(第4版)学习笔记之16-使用文件——黑马 IOS 技术博客
- 黑马程序员_Java 类中各成分加载顺序 和 内存中的存放位置
- 黑马程序员: 基础加强(反射、类加载器、动态代理技术、AOP、InvocationHandler)
- Java技术_基础技术(0002)_中间件启动class加载顺序(以tomcat为例)
- 黑马程序员——IOS学习七:UINavigationController控件的初步——黑马 ios 技术博客
- 黑马程序员_一道java选择题 引发: 类的创建和自身构造方法 加载的先后顺序
- 黑马程序员技术博客之集合框架总结