`
kankan1218
  • 浏览: 271862 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

结果出乎大部分人的意料

阅读更多
package j2se.test;

class A{
	int x, y;
	
	public void setValue(int i, int j) {
		x = i;
		y = j;
	}

	int multiply(){
		return x * y;
	}
}

class B extends A{
	int x, y;

	B(int i, int j)	{
		x = i;
		y = j;
	}

	int multiply(){
		return x * y;
	}
}

public class Test{
	public static void main(String[] args) {
		B subObj = new B(6, 9);
		subObj.setValue(7, 8);
		int m = subObj.multiply();
		System.out.println(m);
	}

}


结果是54.为什么不是56?

参考:http://bbs.langsin.com/thread-10113-1-1.html
分享到:
评论
35 楼 風一樣的男子 2011-04-11  
kankan1218 写道
風一樣的男子 写道
出乎意料??
菜B才人为是56

所有人如果都像你一个素质,这世界就完了。

完了,早完了

明显就不是继承的问题
子类属性覆盖父类的了

在校生都应该明白的
34 楼 feipigzi 2011-04-11  
引用java教程中的一段话:
我们可以这样理解子类创建的对象:
1)将子类中声明的成员变量作为子类对象的成员变量
2)父类的成员变量也都分配内存空间,只是将其中一部分(继承的那部分)作为子类对象的成员变量,也就是说,乳类的private成员变量尽管分配了内存空间,也不作为子类对象的成员。

#  B subObj = new B(6, 9);  //设置了子类的成员
#         subObj.setValue(7,; //设置父类的成员
33 楼 wubo.wb 2011-04-11  
tiandp007 写道
结果在意料之中!

++
32 楼 kankan1218 2011-04-11  
qiushily2030 写道
不是什么东西都可以继承的...

父类的setValue方法难道没有被子类继承吗?
31 楼 kankan1218 2011-04-11  
風一樣的男子 写道
出乎意料??
菜B才人为是56

所有人如果都像你一个素质,这世界就完了。
30 楼 kankan1218 2011-04-11  
laolinshi 写道
你在子类中调用父类的方法,父类的方法当然不可能改变子类的变量的,因为父类不可能知道这个子类存在。

这个setValue方法没有被子类继承吗?
29 楼 ouyangshixiong 2011-04-11  
结果意料之中
28 楼 airshow 2011-04-11  
twojinyong 写道
magnesium 写道
我承认你们都很强大,不能编译的代码都在讨论。。。

吓我一跳,差点真以为不能编译呢

我也被下一跳,这怎么就不能编译了?难道他用的JDK跟我用的不一样?
27 楼 airshow 2011-04-11  
倒是没出乎我的意料
26 楼 laolinshi 2011-04-11  
你在子类中调用父类的方法,父类的方法当然不可能改变子类的变量的,因为父类不可能知道这个子类存在。
25 楼 twojinyong 2011-04-11  
magnesium 写道
我承认你们都很强大,不能编译的代码都在讨论。。。

吓我一跳,差点真以为不能编译呢
24 楼 magnesium 2011-04-11  
我承认你们都很强大,不能编译的代码都在讨论。。。
23 楼 dyllove98 2011-04-11  
实例化B的时候也会同时实例化A
setValue设置的是A的 不是B的
22 楼 tonyruiyu 2011-04-11  
A subObj = new B(6, 9); 
        subObj.setValue(7,
        int m = subObj.multiply(); 
        System.out.println(m); 
56
21 楼 mtnt2008 2011-04-11  

看基础书,然后编写程序验证自己的想法,这样你就提高了
20 楼 freemenff 2011-04-11  
这是意料之中的结果。。无聊。。
19 楼 kanny87929 2011-04-11  
。。。。什么东西,这都拿出来讨论
18 楼 抢街饭 2011-04-11  
下次就不会出人意料了
17 楼 jiluo094 2011-04-11  
http://www.iteye.com/topic/997090
16 楼 神之小丑 2011-04-11  
java_林 写道
神之小丑 写道
C_J 写道
我承认我错了。
class C {
	public int x, y;

	public void setValue(int i, int j) {
		x = i;
		y = j;
	}

}

class D extends C {
	public int x, y;

	D(int i, int j) {
		x = i;
		y = j;
	}

	public void setValue(int i, int j) {
		super.setValue(i, j);
		x = i;
		y = j;
	}

	int multiply() {
		return x * y;
	}
}


94,
子类里调用的是父类的setValue方法,子类里没有这个方法,
改变不了子类里的 x,y 当然是6 9而不是7 8


对,这一次赋值改变的是父类的中的x,y。
我想问这次赋值操作的xy是属于哪个对象?是初始化B对象前创建的那个A对象还是另有临时对象?

thinking in java里是这样说的:
创建衍生类的一个对象时,它在其中包含了基础类的一个“子对象”。这个子对象就象我们根据基础类本身创建了它的一个对象。从外部看,基础类的子对象已封装到衍生类的对象里了。

ps:中文版的,翻译的很烂

相关推荐

    gpmc (组策略管理控制台)

    随着组策略的深入应用,对这些组策略的管理成了用户最大的负担,而部分用户根本无法预料他所配置的组策略会产生什么样的后果,很多时候结果大大出乎他们的意料。在微软新闻组里,恐怕最著名的组策略问题就是"本地...

    论文研究 - 尼日利亚东北部半干旱土壤的上层和下层微生物群落富含菌丝藻和变形细菌,稀有物种的多样性令人惊讶地高

    博尔诺州是尼日利亚第二大州,拥有超过70,000平方公里的多样化生态系统,其中包括肥沃的乍得湖盆地的部分地区。 但是,超过2/3的陆地受到干旱,沙漠化和土壤退化的威胁。 大多数恢复工作都涉及到植被恢复,而在过去...

    边缘异常21厘米信号和模数时代

    EDGES协作组织最近报告说,在宇宙红移z = 17附近的21厘米光谱中检测到出乎意料的更强吸收信号,导致原始气体显着冷却。 可以考虑气体的冷却,这是因为考虑了由一小部分携带微小电磁电荷的暗物质(DM)从重子中散射...

    “00后”开始读研了!清华今年最小博士生17岁

    总的来说,男生与女生在大部分高校的研究生新生中已有平分秋色之势。即便是在华中科技大学、同济大学这类理工科强势院校,男女比例也因学校研究生规模的扩大、学科门类的完善而出乎意料地平均:分别为1.30:1和1.20:1...

    figment:用于创建基于文本的多人游戏世界的框架

    虚构Figment是用于创建多人基于文本的世界的框架。 它最初旨在探索“实体组件系统”体系结构模式在MUD...旨在使世界建造者能够创建动态环境,这些环境由以复杂(甚至是出乎意料)的方式相互交互的实体组成,因此:尝

    soundshader.github.io:声音GLSL

    ACF的最出乎意料的特性也许是它可以将主观的“和声水平”从音乐准确地传递到图像。 如果您考虑一下,这几乎是一个不合理的财产。 下图是极坐标中的ACF高度图。 女声乐 戴维·帕森斯 钢琴 鸟 更多示例: (提防大...

    C++开源程序库 C++开源程序库

    C++的XML相关库不少,但是大部分其实都是C库,使用起来自然不那么轻便。其中基于DOM的有TinyXml,基于SAX的当然是Xerces。前者小巧快捷,便于使用,适合做数据交换。后者则是全功能的XML解析器。 7、内存管理:...

    敏捷软件开发原则,模式与实践

    因此,本书能从众多优秀书籍中脱颖而出获得第13届Jolt大奖,就没有什么出乎意料了。  本书主要包含4部分内容,这些内容对于今天的软件工程师都非常的重要,它们是:  ●Agile方法:主要讲述了如何去使用Agile方法...

    verserly:文本编辑器,使作家可以创作视觉诗和删节诗。 用Javascript,HTML5和SCSS编写

    擦除模式允许用户操纵文本,以便某些单词在视觉上脱颖而出,以新的和出乎意料的方式突出显示语言选择。 还有一个内置的单词生成器,可以使用Datamuse API来为需要启发的作者生成单词。 查看编辑器的右侧,以获取...

    自己动手写操作系统(含源代码).part2

    但是实际情况往往是,这些书中忽略掉的内容恰恰占去了一个初学者大部分的时间,甚至影响了学习的热情。 我至今仍记得当我开始编写自己的操作系统时所遭受的挫败感,那是一种不知道如何着手的无助的感觉。还好我坚持...

    自己动手写操作系统(含源代码).part1

    但是实际情况往往是,这些书中忽略掉的内容恰恰占去了一个初学者大部分的时间,甚至影响了学习的热情。 我至今仍记得当我开始编写自己的操作系统时所遭受的挫败感,那是一种不知道如何着手的无助的感觉。还好我坚持...

Global site tag (gtag.js) - Google Analytics