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();一个类的对象为什么不能转化为另一个类的对象?
{
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();一个类的对象为什么不能转化为另一个类的对象?
java中通过多态机制来实现类之间的转化,不过应该不是你所理解的转化吧?
1:直接 new ClassName();
2:Factory工厂模式
3:Class.forName();
4:通过clone方法
你是不可以把一个已经创建的对象给转换为别的类型的对象的,比如你的方法返回一个String类型的值,你想把他转换为Integer类型的那就可以Integer.parseInt(stu_a.work());
我假设你的work方法返回一个String类型的值,不知道我说的明不明白。
1:直接 new ClassName();
2:Factory工厂模式
3:Class.forName();
4:通过clone方法
你是不可以把一个已经创建的对象给转换为别的类型的对象的,比如你的方法返回一个String类型的值,你想把他转换为Integer类型的那就可以Integer.parseInt(stu_a.work());
我假设你的work方法返回一个String类型的值,不知道我说的明不明白。
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的实例吧!!!
student_a和student_b是两个完全不同的类,不能相互转化的,除非他们有继承关系,可以考虑多态
如果没有继承关系的话就不能转换,错误提醒。
object是所有类的超类,你可以试试,任何类都可以转换。