class Base{
int i;
Base(){
add(1);
}
void add(int v){
i = v;
}
void print(){
System.out.println(i);
}
}
class Extension extends Base{
Extension(){
add(2);
}
void add(int v){
i = v*2;
}
}
public class Qd073{
public static void main(String args[]){
bogo(new Extension());
}
static void bogo(Base b){
b.add(8);
b.print();
}
}
a)9
b)18
c)20
d)21
e)22
答案:e
解析:这道题综合考查了好几个知识点,如调用子类的构造方法时会先调用父类的构造方法;如果在子类的构造方法中没有显式调用父类的构造方法,那么创建子类的实例时会先调用父类的缺省构造方法;方法的动态绑定。
以上代码创建的是Extension类的实例,所以在运行时,所有调用add()方法的过程,将始终和Extension类的add()方法动态绑定。以下是程序依次对变量i的改变过程。
初始值:i = 0;
step1:创建实例new Extension()
先调用父类的缺省构造方法Base(),父类的缺省构造方法中执行add(1),i=0 1*2 -> i=2,再调用子类的缺省构造方法Extension(),子类的缺省构造方法中执行add(2),i=2 2*2 -> i=6.
step2:执行add(8)
i=6 8*2 -> i=22[/size]
分享到:
相关推荐
这里,`OleDbDataAdapter`构造函数接收两个参数:一个SQL查询语句和一个数据库连接对象。然后,我们使用`Fill`方法将查询结果填充到指定的`DataTable`(在这个例子中是`BookTable`)。 #### 步骤三:设置ListBox的...
在本例中,`TreeView`控件的数据绑定过程主要包括以下几个步骤: 1. **SQL查询构造**:首先,通过编写SQL语句从数据库中获取所需的数据。这里使用了一个复杂的内连接查询来获取满足条件的记录。 ```csharp ...
对象例化模型可以分为类例化模型和方法例化模型两类,前者是在相应的程序点并借助构造函数参数的绑定时间实现对指定类的程序例化,后者表示通过标识一个专用方法,表示了方法的多变异例化方式下的一种情形。...
在本示例中,我们将深入探讨如何使用jQuery实现HTML元素的双向绑定功能,这是一个常见的需求,特别是在创建动态用户界面时。 双向绑定允许模型(在本例中是`User`对象)的数据与视图(HTML元素)保持同步。当模型中...
在Oracle数据库的PL/SQL编程中,动态SQL是一种强大的技术,允许开发者在程序运行时根据条件构造和执行SQL语句。这种技术对于处理不确定的查询结构或者需要在运行时决定执行什么操作的情况非常有用。本篇文章主要介绍...
本文将深入解析MVVM框架中的一个重要特性——双向绑定,并以一个简化的模拟实现为例,阐述其工作原理。 首先,我们需要理解MVVM模式的基本概念。在MVVM中,Model代表数据模型,View是用户界面,而ViewModel作为两者...
10. Data_Binding方法中,首先创建了一个InsusListControlUtility类的实例,然后调用RadioButtonListParse方法将Dictionary中的数据绑定到RadioButtonList控件上。RadioButtonListParse方法接受三个参数:...
"C++100例,初学者的好工具"这一资源,正如其名,旨在通过100个实例帮助新手快速上手C++编程。 C++起源于C语言,由Bjarne Stroustrup在1983年发展而成。它不仅保留了C语言的底层控制能力,还引入了类、继承、多态等...
此外,React的事件处理函数默认是自动绑定到当前组件实例的,这意味着在组件的方法中可以直接访问`this`,而无需在构造函数中使用`.bind(this)`。这种机制称为autobinding,简化了代码并避免了`this`的引用问题。 ...
例如,`Type`类代表一个类型,`MethodInfo`类表示方法的信息,`ConstructorInfo`类表示构造函数的信息等。 自定义特性是C#中的另一个关键概念。特性(Attribute)是一种元数据,可以附加到代码元素(如类、方法、...
JavaBean是一种遵循特定编码规范的Java类,它具有无参构造方法,并且包含多个符合特定命名规则的公共getter和setter方法,用于访问类的属性。JavaBean的设计模式非常适合用来表示简单的数据容器,在Web开发中经常被...
这本书深入探讨了程序设计的基本原理和方法,不仅涉及编程语言的构造,还深入到计算的本质和解释器的工作原理。 书中主要的知识点包括: 1. **函数式编程**:SICP主要以Lisp语言为例,介绍了函数式编程思想,强调...
多态允许使用父类型引用指向子类型实例,实现动态绑定。这可以通过方法重写、接口实现和虚方法(virtual methods)以及最终方法(sealed methods)来实现。 在异常处理部分,我们学习了如何使用`try`、`catch`、`...
在本资源"C#源码100例"中,我们主要探讨的是C#编程语言的实战应用,通过100个不同的源代码示例来帮助开发者深入理解和掌握C#的各种特性。C#是由微软开发的一种面向对象的编程语言,广泛应用于Windows桌面应用、Web...
本文主要介绍了如何在C#环境下创建一个动态的系统托盘图标程序,类似于Flashget和OICQ那样在任务栏右下角显示的小图标。这个程序可以在后台运行,并且可以通过单击或右键菜单进行交互。以下是对关键知识点的详细解释...
《C#.NET应用编程150例》是一本专注于C#.NET编程实践的教程,它包含了大量的实例,旨在帮助读者深入理解和掌握C#.NET编程语言的精髓。这本教程不仅覆盖了基础语法,还深入到高级特性,为开发者提供了一个全面的学习...
多态性是通过虚函数实现的,它允许子类重写父类的方法,从而在运行时动态绑定。 4. **模板**:C++的模板功能使得我们可以编写泛型代码,可以应用于各种数据类型,增强了代码的灵活性和可重用性。 5. **STL(标准...
动态绑定则在运行时决定,同一方法名可能根据实际对象的类型有不同的实现,这在子类覆盖父类方法时尤其明显。 消息是对象间通信的方式,它们指示对象执行特定操作。消息传递与函数调用类似,但更强调“做什么”,而...
"JS非常使用的500例"是一个丰富的资源集合,包含了各种实用的JavaScript代码示例,旨在帮助开发者快速理解和应用JavaScript技术。 在这些例子中,你可以找到以下关键知识点: 1. **基础语法**:JS的基础包括变量...