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

java编程思想练习题-第7章练习3,4,5-子类基类

阅读更多

题目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的构造函数

2
1
分享到:
评论

相关推荐

    Java编程思想第五章练习和习题

    《Java编程思想第五章练习与习题》章节涵盖了Java编程中的关键概念,这些概念对于深入理解和熟练运用Java语言至关重要。本章的练习旨在巩固和拓展读者在类、对象、继承、多态等核心主题上的理解。以下是根据描述和...

    Java编程思想_第4版—习题答案.rar

    这个"Java编程思想_第4版—习题答案"压缩包包含了上述所有知识点的练习题解答,对于深入理解和掌握Java编程技术具有极大的帮助。通过研读和实践这些习题,读者能够逐步提升自己的编程技能,成为一名熟练的Java开发者...

    chap-java基础练习题 -java基础练习题

    Java基础是编程学习的重要部分,...以上就是Java基础练习题涉及的主要知识点,通过深入理解和实践这些内容,你的Java编程技能将得到显著提升。在学习过程中,不断练习和解决实际问题,将有助于更好地掌握这些基础知识。

    Java应用程序-习题-第8章.doc

    Java 应用程序习题-第 8 章 Java 泛型是 Java 语言中的一种参数化类型机制,允许开发者在编写类、接口和方法时指定类型参数,从而提高代码的可重用性和灵活性。 一、判断题 1. Java 泛型的本质是参数化类型。正确...

    Java面向对象之继承练习题.doc

    【Java面向对象之继承练习题】的解析与详解: 1. **类的继承**:在Java中,继承是面向对象编程的重要特性,允许一个类(子类)继承另一个类(父类)的属性和方法。例如,我们可以创建一个`Music`类作为其他音乐相关...

    Java-Io流,练习

    Java的IO流是Java编程语言中的重要组成部分,它主要用于数据的输入和输出操作。在Java中,IO流被设计为处理任何类型的数据,包括字符、字节甚至对象。本练习旨在帮助初学者理解和掌握Java IO流的基础知识。 一、IO...

    Java面向对象编程-练习题.34429682.doc

    ### Java面向对象编程知识点解析 #### 一、猜数字游戏 - 成员变量的应用 ...通过这些练习题的学习与实践,不仅可以加深对Java面向对象编程基础的理解,还能掌握更多高级特性,如封装、继承、多态等。

    java编程思想(pdf格式)

    《Java编程思想》是Java开发领域的一本经典著作,它深入浅出地介绍了Java语言的核心概念和编程技术。这本书以其详尽的解释、丰富的实例和严谨的逻辑深受程序员喜爱。以下将围绕标题和描述中的知识点进行详细阐述: ...

    CnMISFrame(不开源最终版)

    CnForm 所有窗口基类 --CnBaseForm 业务窗口基类 --CnMainForm 主窗口或子窗口基类 --CnEditForm 数据编辑窗口基类 --CnQueryForm 数据查询窗口基类 --CnFrameForm MDI Frame窗口基类 --CnDialog 对话框窗口...

    Java编程思想 中文文档

    《Java编程思想》是 Bruce Eckel 的经典著作,这本书深入浅出地介绍了Java语言的核心概念和技术,对于初学者和有经验的程序员来说都是极好的学习资源。中文文档的出现使得更多的中国开发者能够无障碍地理解这本权威...

    java习题-多选题

    在"java习题-多选题"这个主题中,我们可以深入探讨Java的基础概念、语法特性、多线程、异常处理、集合框架、IO流、网络编程等多个核心知识点。 1. **基础概念与语法**: - 类与对象:Java的核心是面向对象编程,...

    C++编程思想--多重继承

    【C++编程思想--多重继承】 多重继承是C++中的一种特性,允许一个类可以从多个基类中继承属性和行为,从而实现代码复用和设计灵活性。这种机制使得类能够结合多个基类的功能,但同时也引入了一些复杂性和潜在的问题...

    java练习题-继承.doc

    在Java编程语言中,继承是面向对象编程的一个核心概念,它允许一个类(子类或派生类)从另一个类(父类或基类)继承特性,从而实现代码的复用和扩展。Java使用关键字`extends`来表示继承关系,而`super`则用于访问...

    Java语言程序设计(郑莉)第七章课后习题答案

    通过郑莉老师的第七章课后习题答案,学生不仅可以检验自己的理解,还能深入学习Java的面向对象编程思想,为后续章节打下坚实基础。这些习题解答提供了宝贵的实践机会,帮助读者巩固理论知识并提升编程技能。

    java编程思想 答案+源代码.rar

    《Java编程思想》是 Bruce Eckel 的经典著作,这本书深入浅出地讲解了Java语言的各个方面,对于初学者和有经验的程序员来说都是极好的学习资源。提供的"java编程思想 答案+源代码.rar"压缩包包含了本书的解答和源...

    Python编程基础与应用-课后题解练习题-(7)2页.docx

    【Python编程基础与应用】- 课后题解练习题 在学习Python编程时,掌握基础知识和应用至关重要。本篇内容主要关注了Python中的面向对象编程特性,包括类的继承、对象的特性、构造方法、资源管理以及方法的定义等核心...

    Java编程思想重点笔记(Java开发必看)

    ### Java编程思想重点知识点解析 #### 一、Java中的多态性理解 多态性是面向对象编程的一个核心特性,允许子类对象替代父类对象。在Java中,多态性的实现主要通过以下几种方式: 1. **动态绑定**:在Java中,除了...

    Java编程思想重点笔记(Java开发必看)

    Java 编程思想是每一位Java开发者都需要深入了解的重要领域。这篇笔记涵盖了多个关键知识点,包括多态性、final方法、静态方法、构造函数以及构造过程中的多态行为。 首先,Java中的多态性是面向对象编程的核心特性...

    JAVA第三章的课后习题答案

    本资料集聚焦于“JAVA第三章的课后习题答案”,旨在帮助学习者巩固并深化对Java基础知识的理解。 在Java的学习过程中,课后习题是检验理解和应用所学知识的重要手段。第三章的内容可能涵盖了类、对象、封装、继承、...

Global site tag (gtag.js) - Google Analytics