题目1:证明,即使不为子类创立构造器,编译器也会为你合成一个默认的构造器,该构造器将调用基类的构造器。
package iteye; public class child extends father { public static void main(String []args) { child c=new child(); } } class father { public father(){ System.out.println("I am father's constructor"); } }
输出:
I am father's constructor
题目2:证明基类构造器(a)总会被调用;(b)在导出类构造器之前被调用
package iteye; public class child extends father { public child(){ System.out.println("I am child's constructor"); } public static void main(String []args) { child c=new child(); } } class father { public father(){ System.out.println("I am father's constructor"); } }
输出为:
I am father's constructor I am child's constructor
题目3:创建两个带有默认构造器的类A和类B。从A中继承产生一个名为C的新类,并在c内创建一个B类成员,不要给C编写构造器,创建一个C类的对象并且观察结果。
package iteye; public class C extends A { B b=new B(); public static void main(String []args) { C c=new C(); } } class A { public A(){ System.out.println("I am A's constructor"); } } class B { public B(){ System.out.println("I am B's constructor"); } }
输出为:
I am A's constructor I am B's constructor
这是一个最简单的demo,但是这个demo涉及到类加载顺序的问题。
加载流程是这样的:
(1)入口方法是C类的main方法,运行之前需要把C类加载进内存,加载的时候发现C类继承自父类A所以要先把A类加载进内存。所以第一步是初始化A类的类变量和静态块。
(2)初始化C类的类变量和静态块。
(3)执行main函数
(4)第一行是创建一个C的实例,先初始化A的实例变量
(5)调用A的构造函数
(6)初始化C的实例变量
(7)调用C的构造函数
相关推荐
《Java编程思想第五章练习与习题》章节涵盖了Java编程中的关键概念,这些概念对于深入理解和熟练运用Java语言至关重要。本章的练习旨在巩固和拓展读者在类、对象、继承、多态等核心主题上的理解。以下是根据描述和...
这个"Java编程思想_第4版—习题答案"压缩包包含了上述所有知识点的练习题解答,对于深入理解和掌握Java编程技术具有极大的帮助。通过研读和实践这些习题,读者能够逐步提升自己的编程技能,成为一名熟练的Java开发者...
Java基础是编程学习的重要部分,...以上就是Java基础练习题涉及的主要知识点,通过深入理解和实践这些内容,你的Java编程技能将得到显著提升。在学习过程中,不断练习和解决实际问题,将有助于更好地掌握这些基础知识。
Java 应用程序习题-第 8 章 Java 泛型是 Java 语言中的一种参数化类型机制,允许开发者在编写类、接口和方法时指定类型参数,从而提高代码的可重用性和灵活性。 一、判断题 1. Java 泛型的本质是参数化类型。正确...
【Java面向对象之继承练习题】的解析与详解: 1. **类的继承**:在Java中,继承是面向对象编程的重要特性,允许一个类(子类)继承另一个类(父类)的属性和方法。例如,我们可以创建一个`Music`类作为其他音乐相关...
Java的IO流是Java编程语言中的重要组成部分,它主要用于数据的输入和输出操作。在Java中,IO流被设计为处理任何类型的数据,包括字符、字节甚至对象。本练习旨在帮助初学者理解和掌握Java IO流的基础知识。 一、IO...
### Java面向对象编程知识点解析 #### 一、猜数字游戏 - 成员变量的应用 ...通过这些练习题的学习与实践,不仅可以加深对Java面向对象编程基础的理解,还能掌握更多高级特性,如封装、继承、多态等。
《Java编程思想》是Java开发领域的一本经典著作,它深入浅出地介绍了Java语言的核心概念和编程技术。这本书以其详尽的解释、丰富的实例和严谨的逻辑深受程序员喜爱。以下将围绕标题和描述中的知识点进行详细阐述: ...
CnForm 所有窗口基类 --CnBaseForm 业务窗口基类 --CnMainForm 主窗口或子窗口基类 --CnEditForm 数据编辑窗口基类 --CnQueryForm 数据查询窗口基类 --CnFrameForm MDI Frame窗口基类 --CnDialog 对话框窗口...
《Java编程思想》是 Bruce Eckel 的经典著作,这本书深入浅出地介绍了Java语言的核心概念和技术,对于初学者和有经验的程序员来说都是极好的学习资源。中文文档的出现使得更多的中国开发者能够无障碍地理解这本权威...
在"java习题-多选题"这个主题中,我们可以深入探讨Java的基础概念、语法特性、多线程、异常处理、集合框架、IO流、网络编程等多个核心知识点。 1. **基础概念与语法**: - 类与对象:Java的核心是面向对象编程,...
【C++编程思想--多重继承】 多重继承是C++中的一种特性,允许一个类可以从多个基类中继承属性和行为,从而实现代码复用和设计灵活性。这种机制使得类能够结合多个基类的功能,但同时也引入了一些复杂性和潜在的问题...
在Java编程语言中,继承是面向对象编程的一个核心概念,它允许一个类(子类或派生类)从另一个类(父类或基类)继承特性,从而实现代码的复用和扩展。Java使用关键字`extends`来表示继承关系,而`super`则用于访问...
通过郑莉老师的第七章课后习题答案,学生不仅可以检验自己的理解,还能深入学习Java的面向对象编程思想,为后续章节打下坚实基础。这些习题解答提供了宝贵的实践机会,帮助读者巩固理论知识并提升编程技能。
《Java编程思想》是 Bruce Eckel 的经典著作,这本书深入浅出地讲解了Java语言的各个方面,对于初学者和有经验的程序员来说都是极好的学习资源。提供的"java编程思想 答案+源代码.rar"压缩包包含了本书的解答和源...
【Python编程基础与应用】- 课后题解练习题 在学习Python编程时,掌握基础知识和应用至关重要。本篇内容主要关注了Python中的面向对象编程特性,包括类的继承、对象的特性、构造方法、资源管理以及方法的定义等核心...
### Java编程思想重点知识点解析 #### 一、Java中的多态性理解 多态性是面向对象编程的一个核心特性,允许子类对象替代父类对象。在Java中,多态性的实现主要通过以下几种方式: 1. **动态绑定**:在Java中,除了...
Java 编程思想是每一位Java开发者都需要深入了解的重要领域。这篇笔记涵盖了多个关键知识点,包括多态性、final方法、静态方法、构造函数以及构造过程中的多态行为。 首先,Java中的多态性是面向对象编程的核心特性...
本资料集聚焦于“JAVA第三章的课后习题答案”,旨在帮助学习者巩固并深化对Java基础知识的理解。 在Java的学习过程中,课后习题是检验理解和应用所学知识的重要手段。第三章的内容可能涵盖了类、对象、封装、继承、...