在线提问,关于继承关系中的上传下传问题,我写了个例子,大家帮我分析一下,怎么才算是上传,怎么才算是下传,
/*
* 创建日期 2005-8-3
*
* TODO 要更改此生成的文件的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
/**
* @author Administrator
*
* TODO 要更改此生成的类型注释的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
class Chinaese{
public static void print1(){
System.out.println("this is 中国人");
}
}
class Guangdongren extends Chinaese{
public static void print2(){
System.out.println("this is 广东人 ");
}
}
class HunanRen extends Chinaese{
public static void print3(){
System.out.println("this is 湖南人 ");
}
}
class GuangzhouRen extends Guangdongren{
public static void print4(){
System.out.println("this is 广州人 ");
}
}
public class Test {
public static void main(String args[]){
Chinaese hunan=new HunanRen();
Object o=new HunanRen();
hunan.print1();
}
}
问题点数:20、回复次数:10Top
1 楼java33(三岁就很酷)回复于 2005-08-03 21:40:31 得分 0
没有人知道吗???Top
2 楼interhanchi(on the Java Road)回复于 2005-08-03 21:57:38 得分 0
Chinaese hunan=new HunanRen();这个就是向上转型!
Object o=new HunanRen(); 这个也是向上转型,因为object是所有类的基类!
这样的话就是向下转型! (HunanRen)o.print3();但是前提是你必须有Object o=new HunanRen();这一句,因为向下转型是有风险的!Top
3 楼wingtrace(虽然生活很艰苦,但是我们也不能做禽兽)回复于 2005-08-03 22:01:30 得分 0
你指的“上传”和“下传”是什么意思?没听说过。:(Top
4 楼humanity(城市边缘的狼)回复于 2005-08-03 22:04:22 得分 0
你这个“上传”“下传” 闻所未闻, 不知所指为何?
是不是 Class Cast -- Up Cast & Down Cast ?
Chinaese hunan=new HunanRen();
Object o=new HunanRen();
一个 HunanRen 他继承自 Chinese , 所以一个指向了 Chinese 的句柄是可以指向 HunanRen 的实例,但是这个时候 hunan 自动向上溯型 为 Chinese 类型的, 运行时的具体实例的类型只有运行时才知道,你如果让他 Guangdong gd = (Guangdong) hunan ; 是会出错的,因为本身 hunan 不是 Guangdong 的实例。 Guangdong gd = new Guangdong(); HunanRen hn = (HunanRen) gd ; 也一样出错,总之, 子类型 上溯 成父类型是自动的,但是下溯 却要 明确 cast ,因为他还可能是父类型的其他派生类型(就像兄弟一样)。Top
5 楼seraphin()回复于 2005-08-04 10:41:51 得分 0
楼主语法注意一点,chinaese?这什么意思?还是使用 chinese好懂一点Top
6 楼seraphin()回复于 2005-08-04 10:45:01 得分 0
把所有的 print X ,改写为 printString(){
System.out.print(xxxxxxx);//相应的输出
}
这样重写printString()方法。会让你感觉更加理解深刻Top
7 楼deeplysea(爱是你眼里的一首情歌)回复于 2005-08-14 21:50:52 得分 0
Chinaese hunan=new HunanRen();这个就是向上转型!
Object o=new HunanRen(); 这个也是向上转型,因为object是所有类的基类!
这样的话就是向下转型! (HunanRen)o.print3();但是前提是你必须有Object o=new HunanRen();这一句,因为向下转型是有风险的!
Top
8 楼luanzi(有心,就有翼!)回复于 2005-08-15 13:53:07 得分 0
那向上转型到底有什么作用和意义呢?Top
9 楼java9(我爱你,可是你不爱我)回复于 2005-08-19 13:21:51 得分 0
那向上转型到底有什么作用和意义呢?
Top
10 楼sunhw2002(爪哇帝国里游荡)回复于 2005-08-19 13:48:49 得分 0
楼上的,去看看多态吧,就能了解了
Top




