向上转型,向下转型
2007-07-12 10:52
246 查看
要给学生们讲卷子,不知道这个转型问题怎么讲,搜了几个例子,才发现这个例子最合适,也好懂。
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[])
{
Chinese c=new Chinese();//这样编译可以通过,但运行会抛出异常
HunanRen h=(HunanRen)c;// 这是因为向下转型错误,中国人不一定是湖南人,这里
//是不是可以这样理解要将c强制转换成一个HunanRen
HunanRen h=new HunanRen();//这样就没有问题,这是向上转型,
Chinese c=(Chinese)h; //湖南人一定是中国人这是是否可以理解为将h转换成Cinese
Chinaese h=new HunanRen();//向上转型
h.print();
}
}
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[])
{
Chinese c=new Chinese();//这样编译可以通过,但运行会抛出异常
HunanRen h=(HunanRen)c;// 这是因为向下转型错误,中国人不一定是湖南人,这里
//是不是可以这样理解要将c强制转换成一个HunanRen
HunanRen h=new HunanRen();//这样就没有问题,这是向上转型,
Chinese c=(Chinese)h; //湖南人一定是中国人这是是否可以理解为将h转换成Cinese
Chinaese h=new HunanRen();//向上转型
h.print();
}
}
相关文章推荐
- Java向上转型和向下转型(附详细例子)
- Java中允许向上和向下转型
- JAVA基础知识再学习(5)理解多态&向上转型&向下转型
- Java 向上转型和向下转型
- 向上转型,向下转型
- java向上转型和向下转型
- 多态之:向下转型和向上转型
- java向上转型和向下转型
- 向上转型和向下转型
- Java学习笔记-向上转型,向下转型
- Java之向上转型,向下转型简单理解和实例
- Java中向上转型和向下转型问题
- Java 转型(向上或向下转型)详解及简单实例
- JAVA多态(向上转型)与RTTI向下转型
- Java向上转型与向下转型(good)
- Java 向上转型与向下转型
- JAVA中的向上转型与向下转型
- 向上转型和向下转型
- java向上转型和向下转型
- java多态polymorphic多态的理解三之向上转型和向下转型及优与不足