`
GLC
  • 浏览: 110826 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

java强制转型简单总结

 
阅读更多
java强制类型转换
1、发生强制类型转换要有条件:他们之间要存在继承关系、 即所谓的子类与父类。

    例:Animal animal=new dog();
这里Animal  animal实例化了一个Animal对象、然后将对象指向狗;就比如我们指向一条狗说它是动物;这是成立的。
    例:Animal animal=dog();
意思是把animal引用指向dog引用指向的实例。这是向上转型。
2、强制转型只能是父类强制转换成子类。就比如说狗是动物的子类、我们使用时一般将动物类型强制转换成狗类型。
    我们可以把父类引用指向子类对象,但这样会带来一些问题。比如说Dog有一个特殊的方法、如果将父类引用指向子类对象了,那如何方法那个特殊的方法呢?
若直接animal.方法()。编译不能通过;
要想访问、则需要将animal类型强制转换成dog类型;也就是强制转型。
    例:Dog dog=(Dog)animal;
当然、前提必须是Dog必须是animal的子类。这里就是将动物类型强制转换成狗类型。
    例:Animal animal=new Cat();
        Dog dog=(Dog)animal;
这段程序在便宜中能通过、但是运行是会出现错误;因为我们在第一行中将Animal指向了Cat;在第二行中又将动物(已成了cat)强制转型为dog;这样就会出错。
3、如果不能确定两者是否有继承关系、我们可以通过instanceof操作辨别。
  if(animal  instanceof Dog)
          Dog d=(Dog)animal;
谢同学指点、上层的判断两个类是否有继承关系的语句应改为:
如Class clazz = ....;
clazz.isAssignableFrom(子类名称);返回true说明是挂号里的类的父类或父接口。
clazz.isAssignableFrom(子类名称)  
分享到:
评论
5 楼 GLC 2012-07-15  
恩、、貌似这里没有评论框。。。。。。
4 楼 lixiongzhi_m 2012-07-15  
我弱弱的问下,这个评论怎么回复的??难道直接发表评论就回复了、??
3 楼 GLC 2012-07-15  
谢了、虽然在网上没找着、但还是把它改了。。。。
2 楼 lixiongzhi_m 2012-07-11  
我感觉好像最后一句是错的啊、instanceof 好像是用来判断某个对象是否是某个类的实例化吧??而不是判断他们是否存在继承关系、
我刚刚上网找了下判断两个类是否有继承关系用isAssignableFrom(clazz)方法
如Class clazz = ....;
clazz.isAssignableFrom(子类名称);返回true说明是挂号里的类的父类或父接口。
clazz.isAssignableFrom(子类名称)
1 楼 lixiongzhi_m 2012-07-11  
 

相关推荐

    java源码包---java 源码 大量 实例

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    JAVA上百实例源码以及开源项目

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    java源码包4

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    JAVA上百实例源码以及开源项目源代码

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    java源码包3

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    java源码包2

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    Java 简单的ejb实例代码.rar

    创建一个访问EJB的客户端应用程序,通过强制转型得到Home接口,同时还分享了一个函数,用于使用本地接口产生一个远程接口的应用。  其应用扩展展现的是一个简单的Stateless Session Bean的实现过程,希望能够对...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    JAVA上百实例源码以及开源项目源代码 java开源包2

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    Java ejbCreate初始化EJB代码实例.rar

    Java ejbCreate函数初始化EJB的一个代码实例,代码将创建一个EJB测试客户端程序,演示... 代码通过强制转型得到Home接口,用client的getHome()函数调用Home接口函数得到远程接口的引用,用远程接口的引用访问EJB。

    AIC的Java课程1-6章

     理解运行时判定引用对象的类型(instanceof),进行强制转型(即引用的显示转型)。 第7章 内部类 2课时  学会定义内部类,能够在外部类中或外部类外实例化内部类;定义静态内部类和实例化。...

    Java B-S结构EJB用法例子.rar

    Java B-S结构EJB用法例子,在JSP页面中,为初始化上下文获得一个系统属性对象,初始化并得到一个上下文,查询jndi名,通过强制转型得到Home接口,得到远程接口的引用,JSP调用EJB的例子。

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    JAva EJB购物网站订单处理模块实例.rar

    一个JAva EJB购物网站订单处理模块实例,一个接收购物订单的消息驱动Bean,处理这个订单同时通过e-mail的形式给客户发一个感谢消息,消息驱动Bean必须实现两个接口MessageDrivenBean和MessageListener,onMessage函数...

    java范例开发大全源代码

     实例10 转型运算符 17  2.3 其他形式 18  实例11 常量与变量 18  实例12 各种进制的转换 19  实例13 Java中的进制与移位运算符 22  第3章 条件控制语句(教学视频:75分钟) 26  3.1 if控制语句...

    java范例开发大全

    实例10 转型运算符 17 2.3 其他形式 18 实例11 常量与变量 18 实例12 各种进制的转换 19 实例13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实例14 判断输入的年份...

    Java范例开发大全 (源程序)

     实例10 转型运算符 17  2.3 其他形式 18  实例11 常量与变量 18  实例12 各种进制的转换 19  实例13 Java中的进制与移位运算符 22  第3章 条件控制语句(教学视频:75分钟) 26  3.1 if控制语句 26 ...

    Java范例开发大全(全书源程序)

    实例10 转型运算符 17 2.3 其他形式 18 实例11 常量与变量 18 实例12 各种进制的转换 19 实例13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实例14 判断...

Global site tag (gtag.js) - Google Analytics