`
btprince
  • 浏览: 10928 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

第一帖:关于父类强制转换为子类的疑问

阅读更多
给出Object obj一个对象;
在运行时
     System.out.println(obj.getClass().getName());
结果为xxx.com.bean.User。
如何将obj强制转换为User?前提是,只有运行时才知道obj的实际类型。

分享到:
评论
3 楼 movingboy 2007-08-03  
如果实在没办法了,可以这样:

if (instanceA instanceof TypeB)
  TypeB instanceB = (TypeB)instanceA;


这种办法至少比用反射要简单一点~~~
2 楼 btprince 2007-08-03  
谢谢,终于有人回帖啦,非常感谢!

我是否可以通过反射来调用其属性和方法呢?
1 楼 silentlakeside 2007-07-12  
既然你编码的时候不知道obj的实际类型,因此你也不会调用他的实际类型的方法,那又何必强制造型呢?

相关推荐

    JAVA 多态操作----父类与子类转换问题实例分析

    在 Java 中,我们可以使用强制类型转换来将父类对象转换为子类对象。但是,需要注意的是这种转换只有在父类对象实际上是子类对象的实例时才可以成功。如果父类对象实际上是父类对象的实例,那么这种转换将会失败。 ...

    第七课 对象类型及相互转化.rar

    - 向下转型(Downcasting):将父类引用转换为子类对象,如`Dog d = (Dog) a;`,需要显式进行,可能会抛出`ClassCastException`。 7. **接口与实现类**: 接口是行为的规范,定义了一组抽象方法。类可以实现接口...

    JAVASE教程

    - **向下转型**:将父类引用强制转换为子类类型,以便调用子类特有成员。 - **方法重写**:子类覆盖父类的方法。 - **多态**:通过定义父类类型的引用,可以指向不同的子类实例。 - **抽象类**:包含抽象方法的类,...

    程序设计4PPT课件.pptx

    2. **向下转型**:需要使用强制转换,从父类转换为子类。 3. **`instanceof`操作符**:用于检查对象是否属于特定类或接口。 4. **`Object`类和`equals()`方法**:`equals()`用于比较两个对象是否相等,是`Object`类...

    对象转型和多态1

    2. **向下转型**:将父类的引用转换为子类的引用,这需要强制类型转换,可能抛出ClassCastException: ```java Animal a = new Dog(); Dog d = (Dog) a; // 向下转型 ``` 3. **instanceof 关键字**:用于判断...

    Java基础入门必备单词汇总1.0

    10. **Downcasting**: 向下转型,将父类对象转换为子类对象。 第四章涉及流程控制的高级结构: 1. **Case-Switch**: 用于基于不同情况执行不同代码的结构。 2. **Default**: switch语句中未匹配到case时执行的代码...

    Java深入面向对象编程PPT教案学习.pptx

    反之,父类引用可以被强制转换为子类对象,但需要确保实际对象确实是子类实例,否则会抛出`ClassCastException`异常。 以上内容是Java面向对象编程中的关键概念,掌握这些知识点对于理解和应用Java的面向对象特性至...

    SCJP各章要点02

    而向下强制转换则需要显式转换,即将父类引用转换为子类引用,这样可以访问子类特有的成员。 #### 接口的实现 接口在Java中定义了一组方法的规范,没有具体的实现。一个类可以通过实现接口来承诺遵循特定的行为。...

    第08讲 接口、继承与多态.ppt

    向下转型则是将父类引用转换为子类对象,这需要强制类型转换,并且只有当父类引用实际指向的是子类对象时,转换才是安全的。不安全的转换会导致 ClassCastException。L o g o8.4 方法的重载(Overloading)方法的...

    java复习题及答案[参考].pdf

    6. 类转换与异常处理:尝试将父类引用指向子类对象(向上转型)是可以的,但将父类对象强制转换为子类对象(向下转型)需要确保对象实际是子类类型,否则运行时会抛出`ClassCastException`。在这个例子中,`Base b`...

    Sun Certified Programmer for Java 2 Platform 1.4

    Java允许从子类对象转换为父类对象(向上转型),这在第6行发生,而从父类对象转换为子类对象(向下转型)需要确保对象实际是子类的实例,如第7行所示。在这里,由于`o`实际上是一个`Foo`对象,所以第7行的转换是...

    13.java学习第十三章——方法覆盖和多态.pdf

    - **向下转型**(Downcasting):将父类的引用转换为子类的引用。这是一种显式类型转换,需要使用强制类型转换操作符。 **2.3 多态的工作原理** - 在编译时,编译器根据引用变量的类型来决定调用哪个方法。 - 在...

    【IT十八掌徐培成】Java基础第06天-03.多态-类多态-接口多态-同名属性问题.zip

    若要访问子类中同名的属性,需要将对象强制转换为子类类型,然后通过子类引用进行访问,这被称为向下转型。 在实际编程中,应尽量避免在父子类之间定义同名属性,因为这可能导致混淆和难以维护的代码。如果确实需要...

    黑马程序员入学Java知识(精华总结)

    引用变量可以从子类转换为父类类型(向上转型),也可以从父类转换为子类类型(向下转型)。 #### 五、异常处理和常用类 ##### 1、异常 异常是程序执行过程中出现的错误情况。Java通过异常处理机制来捕获和处理...

    郝斌java视频笔记.doc

    通过强制类型转换,父类引用可以转换为子类引用以访问子类特有的成员,但这必须在父类引用指向子类对象时才能进行。 9. **抽象类**:抽象类用abstract关键字标识,它可以包含抽象方法(只有签名,没有实现)。一个...

    06~07手游公司面视题目.doc

    在Java中,你可以将一个子类对象转换为父类引用,但不能将一个父类引用强制转换为子类对象(除非你知道引用实际上指向的是子类实例)。因此: - A. `Alpha a = x;` 是合法的,因为`Beta`是`Alpha`的子类。 - B. `...

    java基础笔记

    - 如果不进行显式强制转换而尝试将父类引用转换为子类对象,则会抛出`ClassCastException`。 - 强制类型转换应谨慎使用,以避免运行时错误。 #### 二、异常处理机制 1. **异常类型分类:** - Java中的异常分为...

    Java编写中容易搞错的一些东西

    - **定义**: 将父类类型的对象强制转换为子类类型时,如果实际对象不是该子类的实例,则运行时会抛出`ClassCastException`。 - **示例**: 如果有一个父类`Parent`和一个子类`Child`,并且`Parent p = new Parent();`...

Global site tag (gtag.js) - Google Analytics