谁能谈谈向上转型 我对这个不是很清楚 谁能给我讲讲啊 如何用 什么时候用 最好举个例子 谢谢了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 参见:http://hi.baidu.com/cathy_200182/blog/item/b9ebcdd6c9f24e2b07088b97.html 比如说:class Student{}Student st = new Student();Object obj = st;//这就叫向上类型转换(子类转换成父类) 比如说:class Student{}Student st = new Student();Object obj = st;//这就叫向上类型转换(子类转换成父类) 父类指向子类的引用~List list = new ArrayList(); 顶楼上的,好处是:比如有时候你要的方法ArrayList里没有,而LinkedList里有时,直接改一下List list = new LinkedList();,下面就可以list._() 了!!! 向上转型是把子类当做父类用。 使父类可以调用子类重写过的方法。 如: class Sp{ public void sayHi(){ Systemout.println( "Sp hi~ "); } } class S1 extends Sp{ public void sayHi(){ Systemout.println( "S1 hi~ "); } } class S2 extends Sp{ public void sayHi(){ Systemout.println( "S2 hi~ "); } } public class Test{ public static void main(String[] args){ Sp sp = new Sp(); Sp sp1 = new S1();//这就是向上转型 Sp sp2 = new S2();//这就是向上转型 sp.sayHi(); sp1.sayHi();//sp1与sp2都是 Sp类型的,可是却可以有不同的输出 sp2.sayHi(); } } 生物里面分为 动物和人类 人类里面分为 小孩和成年人动物和人类都是生物的子类小孩和成年人都是人类的子类你可以把人类的一个对象 比如LZ你 向上转型为一个生物 那么当(生物)LZ; 这句结束之后 LZ虽然还是一个人类 但是计算机认为你就是一个生物了同样 一个成年人的对象 比如LZ你 向上转为一个人类 那么LZ不在是成年人的对象了 你就是一个人类的对象; 同样 也可以把成年人对象的LZ 转为一个生物 那么LZ就是一个生物了。向上转型是安全的 因为LZ肯定是一个人类 并且LZ肯定是一个生物但是向下就不一定安全了 这个LZ应该明白 进来看看吧,优化的问题 求最大的一位 关于Thinking in java中作者自己定义的类 怎么自定义通讯协议? 关于protected的困惑 请问在java中如何调用delphi写的com组件 关于触摸屏电脑系统的软件开发的几点疑问 字符串转成date类型(字符串有什么硬性要求) 哪里有问题啊!!!!!!!!!!!!!!!!!!!(在线等) 何处有IBM visualage下载(中文版,指中文手册) 在Eclipse中运行很正常,但是打包后运行就出问题 关于构造JDialog的一个问题
}
Student st = new Student();
Object obj = st;//这就叫向上类型转换(子类转换成父类)
}
Student st = new Student();
Object obj = st;//这就叫向上类型转换(子类转换成父类)
好处是:
比如有时候你要的方法ArrayList里没有,而
LinkedList里有时,直接改一下List list = new LinkedList();,下面就可以list._() 了!!!
class Sp{
public void sayHi(){
Systemout.println( "Sp hi~ ");
}
} class S1 extends Sp{
public void sayHi(){
Systemout.println( "S1 hi~ ");
}
} class S2 extends Sp{
public void sayHi(){
Systemout.println( "S2 hi~ ");
}
} public class Test{
public static void main(String[] args){
Sp sp = new Sp();
Sp sp1 = new S1();//这就是向上转型
Sp sp2 = new S2();//这就是向上转型 sp.sayHi();
sp1.sayHi();//sp1与sp2都是 Sp类型的,可是却可以有不同的输出
sp2.sayHi(); }
}
人类里面分为 小孩和成年人动物和人类都是生物的子类
小孩和成年人都是人类的子类
你可以把人类的一个对象 比如LZ你 向上转型为一个生物 那么当(生物)LZ; 这句结束之后 LZ虽然还是一个人类 但是计算机认为你就是一个生物了同样 一个成年人的对象 比如LZ你 向上转为一个人类 那么LZ不在是成年人的对象了 你就是一个人类的对象; 同样 也可以把成年人对象的LZ 转为一个生物 那么LZ就是一个生物了。向上转型是安全的 因为LZ肯定是一个人类 并且LZ肯定是一个生物但是向下就不一定安全了 这个LZ应该明白