呵呵,不会吧。你要向OOP挑战吗?

解决方案 »

  1.   

    据我所知,下列方法就可以,但这只是一种特例,不知那位大虾知道他的规则?
    B b = new B();
    B bb;
    A a;
    a = (A)b;
    bb = (B)a;
      

  2.   

    父类(指引用)所代表的对象(内存实体)本身是其某子类的实例,则可转换,且可安全使用。
    如:Component  aComp=new TextField();
        TextField txt=(TextField)aComp;
        txt.setText("ok");
    接口与其实现类之间也有相同特征。
        
      

  3.   

    这并不是特例, 而是一般情况, 比如同上的例子, 比如常用的 Vector,
    等等都是这类情况, 具体就是 wangtaoyy 所说的.
      

  4.   

    如果精确地象你写的代码一样,答案是:不能转!一定会抛出异常的!(ClassCastException)以上回答的各位请注意:如果代码是这样写的是可以的:
    class A {}
    calss B extends A{}
    A a = new B{}; //注意这里与问题代码的不同!但要是精确地按问题的写法结果就一定是 ClassCastException!
    B b;
    b = (B)a;  //这样做没什么意义。
      

  5.   

    其实无论怎样,用instanceobject.getClass()的方法只会得到创建所使用的类。不会因为实例被类型转换而改变:)