java如何实现多态 我的游戏已经完成了,现在还想改进一下。我给几个差不多的类设立了一个基类,用于从中继承。程序运行时所有这些类都存放在一个该基类的list中。但是如果我从list中获取一个基类的实例后我就无法放入一个该基类的子类的实例中(和c++不同)。可是如果我用基类去存储这个实例就无发调用基类没有声明的方法。难道非要把子类需要用的方法都在基类中声明一遍吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 感觉你的设计有问题。比较笨的处理方法,根据从list中取出来的对象的实际类型,强制转换为实际的类型,再调用相应方法。可以根据obj.getClass().getName()判断是不是你需要的类名,如果是,强制转换,调用相应方法。最好还是重新考虑设计。 帮楼主顶,看下面的朋友有没有好的解决方法关注ing! java中的反射可以动态得到对象中的方法如果基类的子类不多的话,你可以这样: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();}可能有语法问题,但这样应该可以实现 这个...java 不熟,但也应该有虚方法吧强制转换是可以的 这位大哥说的好像很好,关注ing 看看java编程思想里面有详细介绍 去保存一个对象的list,还不如用文件来管理一个全类名的列表,在通过Class.forname(classpath).newInstance()来初始化想要的对象,这样灵活很多. 把两个文件的内容合并一起输出,求高手指点迷津坐等 关于Graphics的提问 jsp如何在服务器端创建文件在客户端跳出窗口直接下载? 一个很基本的问题,本人初学,知道的请回。。。 请问JAVA API手册哪里有呀!有分送呀! 如何进行打包发布 请问Runnable接口有什么用处? Java里难道只支持16色地图标吗? 怎么在JBuilder中打开JInternalFrame窗口? 我 的helloworld程序遇到下面的错误是怎么回事? 急:关于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()来初始化想要的对象,这样灵活很多.