Java继承,创建对象初始化顺序
来源:互联网 发布:淘宝蛋刀必出bug 编辑:程序博客网 时间:2024/04/30 09:57
请问下面代码的输出结果
给点提示,Java中每次new 一个对象,其实就做两件事 一、是分配存储空间(也可以理解为创建)。二、初始化
具体的步骤如下
1、先在堆内存中开辟空间,空间的大小取决与属性的类型和属性的个数(包括继承父亲的属性)。
2、成员变量初始化(如果成员变量没赋值,则为默认值)
3、构造方法初始化
其中2、3两步是从基类依次到达儿子重复的做。
请先用手动得出结果,然后再用工具运行一下,看一下结果是否跟你预想的一样
class Meal { Meal() { System.out.println("Meal()"); }}class Bread { Bread() { System.out.println("Bread()"); }}class Cheese { Cheese() { System.out.println("Cheese()"); }}class Lettuce { Lettuce() { System.out.println("Lettuce()"); }}class Lunch extends Meal { Lunch() { System.out.println("Lunch()");}}class PortableLunch extends Lunch { PortableLunch() { System.out.println("PortableLunch()"); }}public class Sandwich extends PortableLunch { Bread b = new Bread(); Cheese c = new Cheese(); Lettuce l = new Lettuce(); Sandwich() { System.out.println("Sandwich()"); } public static void main(String[] args) { new Sandwich(); }}接着,再来看下面的一段很有趣代码,同样的先想一下结果是什么,在运行
class Glyph { void draw(){} Glyph() { System.out.println("Glyph() before draw()"); draw(); System.out.println("Glyph() after draw()"); }}class RoundGlyph extends Glyph { int radius = 2222; RoundGlyph(int r) { radius = r; System.out.println("RoundGlyph.RoundGlyph(), radius = "+ radius); } void draw() { System.out.println("RoundGlyph.draw(), radius = " + radius); }}public class PolyConstructors { public static void main(String[] args) { new RoundGlyph(5); }}通过上面的例子希望能够让你们对Java中继承能有更深一步的理解。
- Java继承,创建对象初始化顺序
- java对象创建过程/初始化顺序
- java对象创建过程及初始化顺序
- java继承 初始化顺序
- java继承初始化顺序
- 继承与初始化(static对象初始化顺序)
- JAVA对象初始化顺序
- java对象初始化顺序
- Java 对象初始化顺序
- Java对象初始化顺序
- Java对象初始化顺序
- Java 对象初始化顺序
- Java 对象初始化顺序
- Java对象初始化顺序
- java对象初始化顺序
- java对象初始化顺序
- Java对象初始化顺序
- Java对象初始化顺序
- 黑马程序员Java基础加强41-48学习日记
- 532 3Ddfs- Dungeon Master
- 温州高铁事故再一次用N条生命有力地证明了中国高铁具有自主的知识产权。绝对不存在剽窃其它国家的先进的技术成果。
- C语言:格式控制符
- 如何使用VS2008打开VS2010的解决方案
- Java继承,创建对象初始化顺序
- javascript解析XML生成树形结构
- 关于编程,大学没有传授的10件事
- 黑马程序员Java基础加强49-56学习日记
- 社交网络成美国雇主应聘者背景调查渠道
- 可并堆 poj3016 不平衡的美
- vc里使用GDI+
- ubuntu 8.04下安装NS2(ns-allinone-2.30) 安装问题处理(转)
- 09-struts-ActionForward