[问题引出]:
public class Parent
{
public void test()
{}
public Parent()
{
test();
}
public static void main(String [] args)
{
new Child();
}
}
class Child extends Parent
{
private int instanceValue = 20;
public void test()
{
System.out.println("instance value is: " + instanceValue);
}
}
执行Parent的main结果是什么,并说出理由
[回复]:
我试着分析下哦:
很显然,程序是从Main开始执行的,不过执行之前肯定是装载了Parent类的.
当执行new Child();语句时,肯定也会去装载Child类(记住,这是只是装载,装载的同时会完成类的静态成员的初始化工作).这里是请求创建Child的实例,因为Child是Parent的子类,那么肯定是要去先去创建Parent的一个实例的,那么在这个过程中,就会执行了Child的覆盖方法test(),这时,子类中的instanceValue还没有被赋值.因为这时候还没有进行Child的实例创建.
看一下我加入一些状态的程序和执行结果哦.
程序清单:
public class Parent
{
public void test() {
System.out.println("In Parent Class.");
}
public Parent() {
System.out.println("In Parent Constructor");
test();
}
public static void main(String [] args) {
System.out.println("In Main Function.");
new Child();
}
}
class Child extends Parent {
private int instanceValue = 20;
public void test() {
System.out.println("In Child Class.");
System.out.println("instance value is: " + this.instanceValue);
}
public Child() {
System.out.println("In Child Constructor.");
}
}
执行结果(主要是看执行顺序哦):
In Main Function.
In Parent Constructor
In Child Class.
instance value is: 0
In Child Constructor.
嘿嘿,应该懂了吧!~ 你可以试着把instanceValue的修饰符改为static试试哦.
分享到:
相关推荐
此外,这些帖子可能还会涵盖实战项目,例如构建一个简单的Web应用、实现一个数据库管理系统或者参与开源项目。通过实践,学习者能更好地理解如何将理论应用于实际开发中,从而提升解决问题的能力。 对于Java开发者...
【标题】:“我的第一个Java程序” 在编程世界中,编写“我的第一个程序”通常是学习新语言的第一步。Java,作为一种广泛使用的面向对象编程语言,也不例外。这个标题“我的第一个Java程序”暗示了我们即将探讨的是...
本实例中的"有java 开发的一个BBS论坛实例"是一个完整的BBS(Bulletin Board System,电子公告板)源代码,它展示了如何使用Java Web技术来创建一个功能完备的在线讨论平台。下面将详细介绍这个实例涉及的主要知识点...
【标题】:“一个Java的开源BBS” 【描述】:“一个Java的开源BBS,对于想要学习Java的人来说非常不错,采用SSH架构,简单易懂。” 【标签】:Java、BBS、SSH 在这个项目中,我们关注的是一个基于Java语言开发的...
项目核心是利用Java语言,结合JSP(JavaServer Pages)、JSTL(JavaServer Pages Standard Tag Library)、Servlet和Filter等技术来构建一个基本的在线讨论板。 1. **JSP(JavaServer Pages)**:JSP是Java平台上的...
通过深入研究这个名为 "FlyBBS" 的压缩包,你可以了解到如何使用 Java 语言构建一个功能完备的在线论坛系统,同时也能学习到 Web 开发中的一些核心技术和最佳实践。这对于提升你的 Java Web 开发技能是非常有价值的...
"BBS.rar_BBS java_新建帖子" 提供了一个基于Java技术实现的简单论坛系统,该系统涵盖了基本的帖子管理功能,包括回复帖子、新建帖子、删除帖子和修改帖子。下面将详细解释这些知识点。 1. **BBS(Bulletin Board ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
首先,`jsprun.jsp` 文件很可能是论坛中的一个关键页面,可能是用户论坛首页或者帖子详情页。JSP是Java Web开发中用于创建动态网页的工具,它将HTML代码与Java代码结合在一起,使得服务器端能够处理数据并返回给...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
这是一个基于Java技术构建的简单BBS(Bulletin Board System,电子公告板)网站的完整源代码。这个项目非常适合Java初学者进行学习和研究,虽然注释可能不多,但是基础功能完善,便于理解。以下是对这个BBS网站源码...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
1. "Java500_.chm" 可能是一个包含了500个Java编程问题及其解答的合集,这将帮助你巩固和扩展你的Java知识库。 2. "Java编程思想第四版完整中文高清版(免费).pdf" 是上述提及的权威教材的电子版,便于随时查阅和学习...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
在Java这个广受欢迎的编程语言领域,论坛是一个充满活力的学习和交流平台,众多开发者在此分享经验、探讨技术问题。"java论坛经典整理"这个压缩包文件显然汇集了论坛中的精华内容,旨在为学习和研究Java的朋友们提供...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
- Java认证是衡量开发者技术水平的一种方式,主要包括Oracle Certified Associate (OCA), Oracle Certified Professional (OCP),以及更高级别的Oracle Certified Master (OCM)。 - 考试内容包括Java语法、面向...