`
happyqing
  • 浏览: 3156373 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java在创建子类对象的同时会不会创建父类对象

阅读更多

 

1.在thingking in java 的第四版第六章中明确的说了,子类对象中封装了父类对象,

 

2."When you create an object of the derived class, it contains within it a subobject of the base class. This subobject is the same as if you had created an object of the base class by itself. It’s just that from the outside, the subobject of the base class is wrapped within the derived-class object."
这里说派生类拥有一个父类的亚对象(subobject),是指派生类的对象中的一部分与父类对象是相同的。这个亚对象不是一个实际的对象,是无法独立于派生类对象之外的。

 

3.子类在创建实例后,类初始化方法会调用父类的初始化方法(除了java.lang.Object类,因为java.lang.Object类没有父类),而这种调用会逐级追述,直到java.lang.Object的初始化方法。
这个地方是初始化方法,而不是构造方法,因为构造方法是相对于java源程序而言,而编译后的class文件是初始化方法即" <init>"方法,初始化方法由java源程序的三个部分组成的,一个部分是成员字段后的直接的初始化语句,例如private int i=0;,第二个部分是由初始化块组成,例如:public class Test{ { this.i=4; \\do something...... } }
第三个部分就是java源代码中的构造方法中的代码,java源代码中有几个构造方法,那么class文件中就有几个初始化方法,编译器会把第一部分与第二部分分别复制到每个初始化方法的前端,然后把初始化方法对应参数的构造方法的代码复制到相应初始化方法中
调用初始化方法并不会生成对象
想象你的父类是一个抽象类,那么抽象类又如何能够产生对象呢

 

(对象的创建就是根据在堆上有没有开辟实例域的数据空间)

分享到:
评论

相关推荐

    java课件面向对象

    java 面向对象设计 创建类 继承 封装 子类父类各种程序实例

    JAVA面向对象详细资料

    20.7 在创建子类实例时,会创建父类实例,先创建哪个? 23 20.8 在子类构造方法中如何调用父类构造方法? 23 20.9 super关键字 24 20.10 父类中私有属性和私有方法可以继承吗? 24 20.11 在代码开发时先开发父类还是...

    java 基础 类对象创建实例化过程 实例解析

    * 执行启动类的main函数 -&gt; 创建对象的继承树从高到底的类层次中的静态块(如果已经被执行过,则不会重复执行) -&gt; * 继承树中的从最高层开始的实例语句块{}、然后对应的构造函数、以及构造函数中调用的方法 * ...

    《Java程序设计案例教程》教学课件05深入Java面向对象.pptx

    图5-1 创建父类Circle 图5-1 创建父类Circle 《Java程序设计案例教程》教学课件05深入Java面向对象全文共47页,当前为第7页。 5.2 继承 5.2.1 继承的实现 【例5-1】 单击Finish按钮,完成父类Circle的创建。文件名...

    实验04 Java面向对象编程2.doc

    //创建子类对象 System.out.println(s.toString()); //显示s的个人信息,调用继承父类的toString方法 s.setScore(80,88,95); //设置三门课的成绩 System.out.printf(“三门课的平均分:%.2f”, s.avg()); //显示...

    java程序设计课件

    对初学者非常有用的资源,大家拿回去好好看啊

    《java面向对象程序设计-继承和多态》教案.doc

    声明抽象类语法: abstract class{…… } 使用:父类中的某些抽象不包含任何逻辑,并需要在子类中重写,子类提供这种抽象方 法的实现细节 abstract 修饰符 3-2 抽象类可以具有指向子类对象的对象引用 abstract 修饰...

    Java基础知识总结(总共六章)

    匿名对象:在一个对象被创建之后,调用对象的方法是可以不定义对象的引用 变量,直接调用该对象的方法;只是用一次的对象; 2. 继承:可以复用代码,缩短开发周期,节约成本 就是扩展已有类的功能,在继承中分为...

    Java零基础-继承.md

    读者将学习如何创建子类和父类,并了解继承的重要性和优势。通过一个图形类的示例,读者将了解如何使用关键字extends来实现类的继承,以及如何通过重写方法来实现不同子类的特定功能。此外,还将介绍方法的覆盖和...

    设计一个包含5个类的Java程序.zip

    设计一个包含5个类的Java程序,名为Person的父类有两个子类,学生类Student和员工类Employee。Employee类有两个子类,教师类Faculty和 职员类Staff。所有人都有编号ID、姓名、地址、电话号码和电子邮件地址。学生类...

    java课后习题 关于 编写一个类

    16.编写一个类A,该类创建的对象可以调用方法f 输出英文字母表,然后再编写一个该类的子类B,要求 ...在应用程序的主类中分别使用父类和子类创建对象,并分别调用方法f 计算两个正整数的最大公约数 和最小公倍数。

    Java开发技术大全(500个源代码).

    useOnlyTest.java 创建多个对象,演示this的作用 useStaticBolck.java 使用静态块 useStVar.java 使用静态成员变量 第4章 示例描述:本章学习继承与多态。 absClass.java 抽象类定义示例 ancestor.java 基类...

    JAVA面向对象笔记.md

    本篇笔记阐述了Java中面向对象的核心概念:类作为创建对象的模板,封装通过private关键字实现数据隐藏及getter/setter方法访问控制...并通过实例详细说明了类定义、对象创建、封装实践、继承应用以及多态性的具体实现。

    Java 接口与继承

    继承是一种由已有类创建新类的机制,是面向对象程序设计的基石之一 创建子类的语法 class SubClass extends SuperClass{ … } (2) 继承是存在于面向对象程序中的两个类之间的一种关系 (3) 通过继承实现代码复用

    常见的java面试题及解答

    继承允许子类继承父类的方法和属性,同时可以重写父类的方法,从而实现多态。接口则允许不同的类通过实现同一个接口来达到多态的效果。 Java中如何避免空指针异常? 在Java中,可以通过对可能为空的对象进行“非空...

    java 程序设计 期中考试.doc

    5.在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch中的参数类型有父类子类关系,此时应该将父类放在后面,子类放在前面. ( √ ) 6.拥有abstract方法的类是抽象类,但抽象类中...

    北航网络教育JAVA语言与面向对象程序设计单选题及答案.doc

    JAVA语言与面向对象程序设计单选题 applet的主要方法 在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( )方法来完成主类实例的初始化工作。 A.A. start( ) B. B. stop( ) C. C. init( ) D. D. paint...

    黑马程序员 - Java基础教学 - 08 - 面向对象(4)-多态.doc

    黑马程序员 - Java基础教学 - 08 - 面向对象(4)-多态.doc

    JAVA 课程实验设计

    编写一个java程序,设计一个汽车类Vehicle,包含的属性有车轮的...G-20 声明一个父类A,它只有一个非默认构造方法,声明A的子类B,B具有默认构造方法及非默认构造方法,并在B的构造方法中调用基类A的构造方法。编写测试

    Java 语言基础 —— 非常符合中国人习惯的Java基础教程手册

    Java 中你可以凭借多态性,通过一个画圆的对象,来创建一个画椭圆或矩形的对象。不管是 画圆,画椭圆还是画矩形的方法,它们都有一个相同的方法名,但以不同的方式完成他们的 画圆的功能。 1.8 类和对象 1.8.1 ...

Global site tag (gtag.js) - Google Analytics