package asrfasf;
class Man{
public void print(){
System.out.println("像一个正常人的生活、学习、工作 ");
}
}
class SupperMan extends Man{
public String fly(){
return "会飞";
}
public String fire(){
return "会喷火";
}
}
public class Demo3 {
//java程序入口
public static void main(String[] args) {
System.out.println("---------正常状态下的超人应该是一个普通人--------- ");
Man man=new SupperMan(); //向上转型(将超人自动转为人)
man.print();
System.out.println("--------灾难常状态下的超人应该是一个超人--------- ");
SupperMan superman= (SupperMan)man;//向下转型(将人强制转为超人)
System.out.println(superman.fire());
}
}
向上描述的是一些公共的特征(小转大,自动转),向下描述的的子类自己特殊的定义环境(大转小,强制转),但是向下具有安全隐患,因为在向下转型前一定要发生向上转型!!!!两个没有关系的实例进行转型会发生异常(ClassCastException).