代码如下:
class A {
public int Avar;
public A() {
System.out.println("AAA");
doSomething();
}
public void doSomething() {
Avar = 1111;
System.out.println("A.doSomething()");
}
}
public class B extends A {
public int Bvar = 2222;
public B() {
System.out.println("BBB");
doSomething();
System.out.println("Avar=" + Avar);
}
public void doSomething() {
System.out.println("Bvar=" + Bvar);
}
public static void main(String[] args) {
new B();
}
}
讲解:
顺序是这样得,首先生成B就得先生成A,
所以调用A的构造器,输出AAA,
然后调用方法dosomething,!!!
注意:A的该方法被B覆盖,
而你生成的是B的对象,
所以它调用B的方法,
由于BVAR目前没有给定值,
所以自动初始化为0,
然后生成B对象,
先初始化变量BVAR,
然后调用构造器输出BBB,
然后调用方法,
这时BVAR已初始化,
所以输出BVAR=2222,
而对象A中变量AVAR由于没有调用对象A的方法dosomething,
所以其值为0,则输出0
全部输出就如下:
AAA
Bvar=0
BBB
Bvar=2222
Avar=0
注意:初始化顺序,当继承时,先生成超类对象;生成对象时,先生成静态变量,
然后是一般变量,然后调用构造器!当所以超类对象生成后,生成本对象,顺序
一样! 当方法被覆盖时,调用目前对象的方法!这得注意。
--
茕茕白兔 东走西顾
衣不如新 人不如故
※ 来源:·北大未名站 bbs.pku.edu.cn·[FROM: 202.107.34.72]
分享到:
相关推荐
面向对象编程是软件开发中的一种核心思想,尤其在Java...以上就是面向对象编程的基本知识,深入理解和熟练应用这些概念是成为一名优秀的Java程序员的关键。通过实践和不断学习,你可以更有效地设计和实现复杂的系统。
在上述例子中,`ConcreteSub`是`AbstractBase`的实例,它实现了`AbstractBase`的抽象方法`doSomething()`,因此可以成功创建对象。 另外,Java中的动态代理机制(JDK Proxy)通常用于接口,而不是抽象类。因为Java...
本文将深入探讨四个使用Java解析和生成Excel及XML的实例,旨在帮助开发者掌握相关技能。 实例一:解析Excel文件 使用Apache POI库是Java中解析Excel文件的常见方式。POI提供了HSSF(旧版Excel .xls格式)和XSSF(新...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
本文将深入探讨如何计算Java对象所占内存,并通过提供的代码示例进行详细解析。 首先,我们需要理解Java对象内存占用的基本原理。每个Java对象都由三部分组成:对象头(Object Header)、实例数据(Instance Data)...
Java sslSocket 聊天实例是使用 Java 的 SSL SOCKET 编程来实现安全聊天室功能的示例程序。 十二、用 COMMVIEW 工具截获浏览器访问支付宝的 TCP/IP 包 COMMVIEW 是一个网络嗅探工具,能够截获网络数据包。在本实例...
标题中的“protobuf java自动生成”指的是使用Google的Protocol Buffers(简称protobuf)工具在Java环境中进行数据序列化和反序列化的自动化过程。protobuf是一种高效、跨平台的数据交换格式,它能够将结构化数据...
本教程将深入讲解如何实现这个过程,主要关注`java动态编译`和`将class生成jar`这两个关键步骤,同时会涉及到`JavaCompiler` API的使用。 首先,让我们了解`JavaCompiler` API。这是Java标准库中的一部分,位于`...
总的来说,这个压缩包为Java初学者提供了一个全面的学习平台,通过实践这些例子,他们不仅可以巩固基础语法,还能深入理解Java编程的核心概念。这些基础例子是通往更高级编程技术的坚实第一步,对于想要深入学习Java...
在SpringMVC框架中,开发人员经常需要处理对象实例的传递和返回,这涉及到模型绑定、数据转换和服务层之间的交互。本示例将探讨如何在SpringMVC中有效地完成这一任务,并结合zTree这一前端组件展示如何进行数据交互...
Java生成密钥的实例 Java电子相册源码.rar Java目录监视器源程序.zip JAVA短信网关平台(值得一看).rar Java绘制图片火焰效果.rar Java编写的HTML浏览器.rar Java编写的山寨QQ,多人聊天+用户在线.rar Java编写的...
本文将深入探讨如何模仿JSON,根据对象生成JSON字符串,以及如何根据JSON字符串反向生成对象。 首先,我们要理解JSON的基本结构。一个JSON对象以大括号`{}`包围,其内部由键值对组成,键用双引号`""`包裹,值可以是...
首先,让我们深入理解HTTP请求。HTTP(超文本传输协议)是用于在Web上传输数据的标准协议。在Java中,可以通过多种方式实现HTTP请求,例如使用`java.net.URL`和`java.net.HttpURLConnection`类,或者使用Apache ...
本实例将详细介绍如何使用Jackson库进行JSON到Java对象的反序列化以及Java对象到JSON的序列化。 首先,我们需要引入Jackson库。在Maven项目中,可以在pom.xml文件中添加以下依赖: ```xml <groupId>...
java实例第1章 记忆测试软件 1.1. 设计内容 1.2. 设计要求 1.3. 总体设计 1.4. 具体设计 1.4.1. 运行效果与程序发布 1.4.2. 主类Memory 1.4.3. 方块 Block 1.4.4. 记忆测试板MemoryTestPane 1.4.5. 显示成绩 ...
通过设置断点、单步执行、查看变量值等功能,可以深入理解程序的运行流程。 7. **其他实用工具**:如jconsole(监控JVM性能)、jmap(内存映射工具)、jhat(堆分析工具)等,这些工具帮助开发者优化和诊断Java应用...
通过这些实例,开发者可以深入理解Java语言的核心概念,并学会如何在实际问题中应用它们。 【JBuilder中的项目管理】 在JBuilder中,你可以创建和管理项目,每个项目包含一系列的源代码文件、资源文件以及配置信息...
在本实例中,我们将深入探讨如何使用纯C语言通过JNI调用Java对象的方法。这个例子特别适合那些需要利用C/C++的高效性能,同时又需要与Java应用程序集成的开发者。 首先,我们需要理解JNI的基本概念。JNI提供了一套...
"Java实例100个"这个资源集包含了100个Java编程的示例,旨在帮助初学者逐步深入理解Java语言的核心概念和常用技巧。下面我们将逐个探讨这些实例可能涵盖的知识点,并解释它们在Java学习中的重要性。 1. **基础语法*...
下面我们将深入探讨 JFreeChart 的使用方法、特点以及如何在 Java 中生成曲线图。 首先,JFreeChart 是一个开源项目,它提供了多种类型的图表,如柱状图、饼图、散点图、甘特图等,但在这里我们主要关注的是曲线图...