您的位置:首页 > 其它

多态于继承的一个题目

2009-10-14 14:55 309 查看
题目出的有点纰漏,纠正一下。

java代码:

Child c=new
Child(
)
;

Parent p=c;

p.print
(
)
;

c.print
(
)
;

新建Child实例c,然后将c赋予指向Child祖先Parent的变量p,然后分别调用p.print() c.print(),打印结果却各不相同。

Parent类print()中的代码为:System.out.println("parent");

Child类print()中的代码为:System.out.println("child");

执行结果:

parent

child

这和多态的原则冲突,谁知道答案呢?

更不敢揭晓了,还是和你单挑比较划算, -..=

代码如下,仔细看看变知究竟:

java代码:

package
parent;

import
child.Child
;

public
class
Parent {

void
print(
)
{

System
.out
.println
(
"Parent")
;

}

public
static
void
main(
String
[
]
args)
{

Child c=new
Child(
)
;

Parent p=c;

p.print
(
)
;

c.print
(
)
;

}

}

java代码:

package
child;

import
parent.Parent
;

public
class
Child extends
Parent {

public
void
print(
)
{

System
.out
.println
(
"Child")
;

}

}

主要原因两个类不在同一个包里面嘛



时间: 2004-6-11 11:12:47
标题:




当方法不写作用域的时候,默认为friendly,而friendly的作用域只局限域同一个包内,对于子孙类,就超出她的作用域了,所以,这个不是Override了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: