class Student_a
{
void work()
{
System.out.println("Student_a is at work.");
}
}
class Student_b
{
void work()
{
System.out.println("Student_b is at work.");
}
}
class Student
{
public static void main(String[] args)
{
Student_a stu_a=new Student_a();
stu_a.work();
((Student_b)stu_a).work();
}
}
((Student_b)stu_a).work();一个类的对象为什么不能转化为另一个类的对象?

解决方案 »

  1.   

    不知道你这里的转化是什么意思?
    java中通过多态机制来实现类之间的转化,不过应该不是你所理解的转化吧?
      

  2.   

    产生对象的方式大概有以下几种:
    1:直接 new ClassName();
    2:Factory工厂模式
    3:Class.forName();
    4:通过clone方法
    你是不可以把一个已经创建的对象给转换为别的类型的对象的,比如你的方法返回一个String类型的值,你想把他转换为Integer类型的那就可以Integer.parseInt(stu_a.work());
    我假设你的work方法返回一个String类型的值,不知道我说的明不明白。
      

  3.   

    产生对象的方式大概有以下几种:
    1:直接 new ClassName();
    2:Factory工厂模式
    3:Class.forName();
    4:通过clone方法
    你是不可以把一个已经创建的对象给转换为别的类型的对象的,比如你的方法返回一个String类型的值,你想把他转换为Integer类型的那就可以Integer.parseInt(stu_a.work());
    我假设你的work方法返回一个String类型的值,不知道我说的明不明白。
      

  4.   

    打一个多态的例子,写一个
    class Student_all
    {
    void work()
    {
    System.out.println("all the student is at working!!!");
    }
    }然后你的Student_a和Student_b都继承他
    class Student_a extends Student_all
    {
    .....
    }
    class Student_b extends Student_all
    {
    ....
    }class Student 

    public static void main(String[] args) 

    Student_all stu_all=new Student_a(); 
    stu_all.work(); } 
    } 这是他输出的仍然是student_a is at working,而不是student_all is at working!!!但是这并不是类型转化,你要是想把sudent_a转换为student_b还是重新创建一个student_b的实例吧!!!
      

  5.   

    java还没有那个能力想怎么转化就怎么转化
    student_a和student_b是两个完全不同的类,不能相互转化的,除非他们有继承关系,可以考虑多态
      

  6.   

    只有继承关系的类的对象可以强制转换,,,
    如果没有继承关系的话就不能转换,错误提醒。
    object是所有类的超类,你可以试试,任何类都可以转换。