package test.entity
public MyClass(){
//类的实现
}package test.test
import test.entity.MyClass();public somefunction(){
Object a = new Object();
MyClass b = new MyClass();
println(((MyClass)a).getClass().getName());//打印a
println(b.getClass().getName());//打印b
}代码是随手写的,为啥“打印a”和“打印b”出来的东西不一样阿
一个是“test.test.MyClass”,一个是“java.lang.class”。
为啥对象的类型不一样啊?
java.lang.ClassCastException异常的只能将子类强制转换为父类,
而父类是不能强制转换为子类的。
不知道楼主是怎样运行的?
一个是MyClass类,在test.entity包里。
一个是Test类,在test.test包里。
somefunction()是Test的一个方法。
所以不存在谁是父类,谁是子类的问题。
以上确实可以执行。
按理说两个的结果应该是一样的。但是实际却是不一样的。
我只是在说一个现象,不是就代码本身来说事。
何况那些本来就是伪代码,何必这么斤斤计较啊,难道不知道啥是伪代码么?谢谢7楼的。大概明白一点了。好像是先进行的getClass().getName(),再进行(MyClass)的强制转换。
不知道是不是这样。
public MyClass(){
//类的实现
}package test.test
import test.entity.MyClass();public somefunction(){
Object a = new Object();
MyClass b = new MyClass();
println(((MyClass)a).getClass().getName());//打印a;这个应该是向下转型吧,Object是所有类的基类啊
println(b.getClass().getName());//打印b
}
你连类都不是..还谈什么别的.. 你那样的东西,,写在跟类名一样的类里面是构造方法而已!
Object a = new Object();
MyClass b = new MyClass();
println(((MyClass)a).getClass().getName());//打印a你把Object类型强制转换成MyClass类型不报错?应该报这个错吧:
java.lang.ClassCastException: java.lang.Object cannot be cast to MyClass