什么是向上转型,什么是向下转型

objprogram 2005-03-18 04:48:31
看似简单的问题。不知道谁回答的精辟
...全文
189 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cozmic 2005-08-18
呵呵~
向上专型: 把自己缩减为父类或自己实现的接口
上下转型反之
  • 打赏
  • 举报
回复
ffansky 2005-08-18
子类类型转向基类类型叫向上转型
反之是向下转型
  • 打赏
  • 举报
回复
caocheng8230 2005-08-18
UpCast和DownCast就是相对于UML图的画法而提出的东东,在UML中,一个类继承还是实现另外的一个类,那在图形中用的是一个虚的和实的箭头指向被继承和被实现的类,所以从前头末指向头端就是UpCast,否则是downcast,这就是我的理解.
  • 打赏
  • 举报
回复
zbc12345 2005-08-17
举例来说

/**
* @author Administrator
*
* TODO 要更改此生成的类型注释的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/

class Chinese{

public static void print(){
System.out.println("this is 中国人");

}

}
class Guangdongren extends Chinese{
public static void print(){
System.out.println("this is 广东人 ");
}

}
class HunanRen extends Chinese{
public static void print(){
System.out.println("this is 湖南人 ");
}
}
class GuangzhouRen extends Guangdongren{
public static void print(){
System.out.println("this is 广州人 ");
}
}

public class Test {

public static void main(String args[]){

//Chinaese h=new HunanRen();
//h.print1();
Chinese c=new Chinese();//这样编译可以通过,但运行会抛出异常
HunanRen h=(HunanRen)c;// 这是因为向下转型错误,中国人不一定是湖南

HunanRen h=new HunanRen();//这样就没有问题,这是向上转型,
Chinese c=(Chinese)h; //湖南人一定是中国人。。

h.print1();
}
}
  • 打赏
  • 举报
回复
发帖
Java EE

6.7w+

社区成员

J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
帖子事件
创建了帖子
2005-03-18 04:48
社区公告
暂无公告