前几天在网上看java笔试题,看到下面这个题目,然后在自己的环境下执行了一下,觉得很有收获,
class testA {
private int id=9;
public testA(){
a1();
}
public void a1() {
System.out.println("this is A");
}
}
public class testB extends testA{
private int id=8;
int bb=0;
public testB() {
bb=1000;
super.a1();
a1();
}
public void a1() {
System.out.println("bb is "+bb);
System.out.println("B-a1");
}
public static void main(String[] args) {
new testB();
}
}
大家先猜猜这个执行的结果。
结果是:
bb is 0
B-a1
this is A
bb is 1000
B-a1
以上结果表明:在new()的具体过程是这样的,当new testB(); 的时候首先执行父类的构造方法,父类的构造方法调用了a1();此时编译器又检查到testB重写了a1()这个方法;所以执行的是子类的a1()方法。由于此时还没有执行testB()的构造方法,所以bb=0;所以才有上面的结果。
分享到:
相关推荐
如果在执行过程中出现任何错误,可以通过捕获异常并显示错误信息来进行处理。 ```csharp catch (Exception ex) { MessageBox.Show(ex.Message); } ``` 这段代码会在发生异常时弹出一个消息框显示具体的错误信息。...
本文将深入探讨如何在Spring和Hibernate中执行存储过程,并基于描述中的例子进行解析。 首先,让我们了解Spring如何执行存储过程。Spring通过JdbcTemplate或NamedParameterJdbcTemplate提供存储过程的调用。...
了解 "new" 关键字的执行过程对于深入学习 JavaScript 面向对象特性来说是基础且必要的。下面将详细介绍使用 "new" 关键字创建对象的步骤以及相关知识点。 首先,当我们使用 "new" 关键字来调用一个构造函数时,...
通过具体的实例,本文将详细介绍存储过程的优势以及如何在VB环境下进行调用。 #### 存储过程概述 存储过程是一种存储在数据库服务器上的预编译的SQL语句集合,类似于操作系统中的批处理文件(BAT)。不同的是,存储...
- **WHEN-NEW-BLOCK-INSTANCE**:每个 BLOCK 被实例化时都会触发此事件,可以在此处进行更具体的 BLOCK 初始化工作。 - **WHEN-NEW-RECORD-INSTANCE**:当创建新的 RECORD 实例时触发此事件,可用于初始化 RECORD ...
至于提供的文件"Proc_Out",可能是导出存储过程后的结果文件,其内容可能包含了存储过程的详细信息,如名称、定义、参数等,具体格式取决于实际实现。 总的来说,使用C#导出存储过程并支持模糊查询,可以大大提高...
标题提到的问题——“从bean工厂里单例执行方法效率比new对象执行慢很多”,涉及到Java编程中的两种常见对象管理方式:单例模式和直接实例化。这个现象可能让开发者感到困惑,因为通常认为单例模式在性能上具有优势...
根据提供的信息,我们可以深入探讨如何在IBatisNet中执行存储过程。这涉及到多个方面的内容,包括配置文件(如XML映射文件)的设置、参数传递的方式以及如何在C#代码中调用这些存储过程。 ### IBatisNet简介 ...
`@AnalysisDate`和`@Process_PTR`分别是存储过程中定义的参数名,而`showDate`和`ID`则是具体的值。 #### 2. 调用存储过程并获取结果 ```csharp dtDifferTime = SqlHelper.RunProceduresByParameter("pro_...
- `newInstance()`方法的性能通常低于`new`关键字,因为反射涉及到类的查找和实例化过程,这可能导致额外的开销。 - `new`关键字直接创建对象,因此执行效率更高。 - **安全性**: - `newInstance()`方法允许...
描述中的内容没有给出具体的细节,但暗示了文档可能包含了关于如何在VB应用程序中创建和使用存储过程的指导。 存储过程是数据库管理中的一个重要概念,它是一组预先编译的SQL语句,存储在数据库服务器上。在SQL ...
本文将详细介绍如何在Access中实现一次执行多条SQL语句,并通过具体的代码示例来帮助理解这一过程。 #### 一、基础知识概述 1. **OLE DB**: OLE DB (Object Linking and Embedding, Database) 是一种用于访问各种...
### 虚拟机内存图及加载类的执行过程 #### 一、概述 本文将深入探讨Java虚拟机(JVM)中的内存管理机制及其在类加载过程中的具体表现。Java虚拟机是Java语言的核心组成部分之一,它负责执行编译后的Java字节码,并...
### C#调用存储过程的通用类 ...开发者可以根据具体的应用场景选择合适的方法来执行存储过程,极大地提高了程序的灵活性和效率。此外,该类还通过封装数据库连接管理等细节,使得代码更加简洁易懂,易于维护。
在实际的软件开发过程中,存储过程因其执行效率高及数据库级别的安全性等优点被广泛应用于各种业务场景之中。而对于使用Ibatis作为持久层框架的应用来说,如何有效地调用存储过程便成为了一个值得探讨的话题。本文将...
返回的结果可以是单个值、数据集或者自定义类型的列表,具体取决于存储过程的输出。 LINQ的查询表达式语法(Query Expression Syntax)使得与存储过程的交互更加直观,例如: ```csharp var query = from r in db...
总之,跟踪Java执行过程的方法多种多样,根据具体需求和场景,可以选择最适合的工具和技术。无论是简单的断点调试,还是复杂的AOP和性能剖析,都有助于开发者深入理解代码行为,提高开发效率和代码质量。
本篇将详细解释一个具体的示例,通过VB6.0来调用一个名为`ADOTestRPE`的存储过程,并测试其返回值、输入参数以及输出参数。 #### 一、准备工作 为了实现这个功能,我们需要准备以下几个组件: 1. **连接对象**:...
Oracle存储过程是数据库中的预编译SQL代码块,可以接收输入参数,执行复杂的业务逻辑,并返回结果。在C#中,我们可以使用Command对象来执行这些存储过程,并获取返回的数据集。 首先,确保已经安装了Oracle的数据...
new 运算符是我们在用构造函数创建实例的时候使用的,本文来说一下 new 运算符的执行过程和如何自己实现一个类似 new 运算符的函数。 new 运算符的运行过程 new 运算符的主要目的就是为我们创建一个用户定义的对象...