您的位置:首页 > 其它

一个题目,比较有收获

2004-11-29 17:57 351 查看


时间: 2004-6-04 20:24:22 标题:




题目出的有点纰漏,纠正一下。

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了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: