以文本方式查看主题 - 课外天地 李树青 (http://www.njcie.com/bbs/index.asp) -- 清心茶舍 (http://www.njcie.com/bbs/list.asp?boardid=21) ---- [求助]类的继承问题 (http://www.njcie.com/bbs/dispbbs.asp?boardid=21&id=868) |
-- 作者:信管07151 -- 发布时间:2010/4/9 12:45:10 -- [求助]类的继承问题 class Foo{ 为什么输出地是3?怎样理解Foo f=new Bar()? [此贴子已经被admin于2010-12-13 20:19:05编辑过]
|
-- 作者:admin -- 发布时间:2010/4/10 14:11:50 -- 回复 Bar继承Foo,Bar中有两个a,一个继承来的,一个自己定义的;Bar中有两个addFive,一个继承来的,一个自己定义的 Foo f = new Bar();语法是可以的,因为子类对象可以看成是父类对象,因此被父类引用变量指向,但是此时如果调用addFive,默认调用子类自己的addFive,此乃多态;而调用变量a,则默认还是继承来的a,所以是3。 你可以试一试下面的代码,看看输出就知道原因了: class Foo { public Foo() { public void addFive() { class Bar extends Foo { public Bar() { public void addFive() { public class Exec {
[此贴子已经被作者于2010-12-13 20:19:22编辑过]
|