JAVA相同接口类的强制转换问题

luket 2008-06-06 08:56:53
接口文件:Itest.java

package comm;

public interface Itest {

public String getStrTemp();

public void setStrTemp(String strTemp);

}

Test.java

package comm;

public class Test implements Itest {
public String strTemp;

public String getStrTemp() {
return strTemp;
}

public void setStrTemp(String strTemp) {
this.strTemp = strTemp;
}
}

Test1.java

package comm;

public class Test implements Itest {
public String strTemp;

public String getStrTemp() {
return strTemp;
}

public void setStrTemp(String strTemp) {
this.strTemp = strTemp;
}
}

运行代码

public static void main(String[] args) {
Itest t = new Test();
t.setStrTemp("test");
System.out.println(t);
Itest t1 = (Test1) t;
System.out.println(t1.getStrTemp());
}

正常提示错误:java.lang.ClassCastException


请问有没有办法实现 Test 和 Test1 之间的互相转换
...全文
244 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
liujiaqiid 2008-06-06
  • 打赏
  • 举报
回复

这样行不通,因为Test 和 Test1 是兄弟关系,

而JAVA 只提供向上塑性,也就是一个类只能被转换成其父类;或者是再转换回来;
xiaohui5850 2008-06-06
  • 打赏
  • 举报
回复
肯定不行啊~都是两个不同的类~相当于把Integer强行装换成Long
yunchenge 2008-06-06
  • 打赏
  • 举报
回复
兄弟关系
apples_009 2008-06-06
  • 打赏
  • 举报
回复
不行..test 与test1没什么关系
radeonxhl 2008-06-06
  • 打赏
  • 举报
回复
只有子类型可以转成父类型,其他的父类型转成子类型、或是像lz这样的兄弟类型互相转换,都是不行的
duzhonghua 2008-06-06
  • 打赏
  • 举报
回复
应该不能互换吧,
M_song 2008-06-06
  • 打赏
  • 举报
回复
很明显,是不行的!
再者你这样做有什么意义哪?你想实现什么?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧