`
happyqing
  • 浏览: 3165815 次
  • 性别: 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多态性详解——父类引用子类对象.pdf

    Java 多态性详解 —— 父类引用子类对象 多态性是 Java 面向对象编程的三个特征之一,另外两个是封装和继承。多态性是指通过方法的重写、重载和动态连接来实现的。在 Java 中,多态性是为了解决单继承问题而引入的...

    java定义父类和子类.doc

    同时,我们也可以看到 Java 的一些基本语法元素,如类、对象、继承、多态性、方法重写等,这些元素都是 Java 编程语言的基础。 继承机制的优点: * 代码复用:继承机制允许我们定义一个通用的父类,并让子类继承其...

    java课件面向对象

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

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

    多态的体现是指父类的引用指向了自己的子类对象。这意味着,我们可以使用父类的引用来指向子类的对象,从而实现多态。例如,在上面的示例代码中,我们使用了父类`Animal`的引用来指向子类`Cat`、`Dog`和`Pig`的对象...

    java面向对象程序设计第二版源代码

    Java 中的生成器模式(Builder Pattern)是一种创建型设计模式,它使得客户端可以通过一步一步的方式来生成对象,而不需要关心对象的构建过程。生成器模式的优点是它可以使得客户端可以更方便地生成对象,而不需要...

    JAVA面向对象详细资料

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

    Java基础知识:类和对象

    Java 中的多态性允许使用父类的引用来引用子类的对象。这样可以实现更灵活的编程和代码复用。多态性是 Java 编程的重要特性,理解多态性是 Java 编程的必备知识。 总结 本文详细介绍了 Java 中类和对象的概念、...

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

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

    2023年Java面向对象程序设计.doc

    当我们运用继承由父类创建子类时,假如父类中的某些方法不适合子类,我们无法删除它们,但可以重新定义它们,这被称为覆盖。 六、类的使用方法 在 Java 中,类的声明方法包括包的声明、导入外部包、类的定义和成员...

    Java面向对象编程学习笔记.pdf

    在Java中,类(Class)是对象的蓝图,它定义了对象的属性和行为。对象(Object)是类的实例,它具有自己的状态和行为。类和对象是面向对象编程的基础概念。通过类,我们可以创建多个对象,每个对象都可以具有不同的...

    java上机报告2——java的面向对象设计1

    2. Java 中的继承机制:子类继承父类的属性和方法,并可以对父类的方法进行重写。 3. Java 中的多态机制:父类中的方法可以被子类重写,并可以根据对象的实际类型进行调用。 4. Java 中的封装机制:将数据和方法封装...

    《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面向对象程序设计.doc

    在Java中,对象是一组数据和相关方法的集合。对象具有两个特征:状态(属性)和行为。例如,小鸟有名称、体重、颜色等状态和飞行、觅食等行为;同样,自行车也有品牌、外观、重量等状态和刹车、加速、减速等行为。 ...

    Java面向对象编程思想文.pdf

    8. 构造函数的使用:在子类的构造函数中,如果我们不显示的调用 super() 完成父类的构造,系统会自动调用父类的构造函数。 构造函数是 Java 语言中的特殊方法,它用于初始化对象的状态。构造函数可以是带参数的,也...

    《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案

    7. 在 Java 中字符串包括字符串常量和字符串变量,分别由类 String 和类 StringBuffer 来创建对象。 8. Java 源程序文件编译后产生的文件称为.class 文件,其扩展名为 .class。 《面向对象程序设计JAVA语言程序...

    java继承和多态PPT教案学习.pptx

    里式代换原则是继承关系中的一个重要原则,即子类对象可以代替父类对象。这意味着可以使用子类对象来替代父类对象,但是反之则不行。 多态和动态绑定是Java中的一个重要机制,指的是一个对象变量可以指向多种实际...

    java面向对象试卷及答案[定义].pdf

    20. super 的说法正确的是:是指当前对象的父类对象的内存地址。 Java super 关键字 * super 的说法正确的是:是指当前对象的父类对象的内存地址。 21. 覆盖与重载的关系是:覆盖只有发生在父类与子类之间,而...

    java继承接口与泛型PPT教案学习.pptx

    在子类对象的构造过程中,父类的构造方法将被执行,然后子类的构造方法将被执行。 3. 成员变量的隐藏和方法的重写 在 Java 中,子类可以隐藏父类的成员变量和方法。子类可以使用同名的成员变量和方法来隐藏父类的...

Global site tag (gtag.js) - Google Analytics