我的游戏已经完成了,现在还想改进一下。我给几个差不多的类设立了一个基类,用于从中继承。程序运行时所有这些类都存放在一个该基类的list中。但是如果我从list中获取一个基类的实例后我就无法放入一个该基类的子类的实例中(和c++不同)。可是如果我用基类去存储这个实例就无发调用基类没有声明的方法。难道非要把子类需要用的方法都在基类中声明一遍吗?
解决方案 »
- 哪位大神有本地html格式的J2SE 1.6中文版api(不要chm的)???
- JAVA读写XML文件版本兼容问题
- 怎么生成 2000年2月29日 的日期?
- 控件的监听器程序, 只在(初始化)创建时被执行一次呢, 还是每次有事件时都响应一次?
- 问ResultSet类的主要操作方法
- JAVA SE中JOptionPane和JTabbedPane自定义样式问题
- 哪有JB6下载?以前的不小时删了!
- 请shihb与 broze 来拿分(别删)
- 各位哪儿有Personl web service. 100分重谢!
- 业余爱好,非jiava开发人员,自学java有半年多,写了一个UI计算器
- 急:关于HttpUrlConnection 各位达人帮帮忙! 在线等
- 求教对jdk精通的人
可以根据obj.getClass().getName()判断是不是你需要的类名,如果是,强制转换,调用相应方法。最好还是重新考虑设计。
关注ing!
如果基类的子类不多的话,你可以这样:objectx=(Father)list.get(i);
if(objectx instanceof Son1){
Son1 a=(Son1)objectx;
a.method1();
}else if(objectx instanceof Son2){
Son2 b=(Son2)objectx;
b.method2();
}可能有语法问题,但这样应该可以实现
这位大哥说的好像很好,关注ing
在通过Class.forname(classpath).newInstance()来初始化想要的对象,这样灵活很多.