| 要在运行时修改修改类的成员,有哪些方法? |
| [ 来源:ITWENKU 时间:2006-9-21 16:41:00 | 浏览:191人次
] |
| |
|
翻看think in java时,看到这么一段“可以在运行时刻修改这些成员对象,以实现动态修改程序的行为”。本来以为继承算是一种方法,但紧跟着看到“继承(inheritance)并被具备这样的灵活性,因为编译器必须对通过集成而创建的类施加编译时刻的限制。”仔细一想,倒也是的。 那么,我的问题是,要想在运行时修改修改类的成员,动态修改程序行为,都有什么方法呢?
没有人回答,看来我问得不是很好吧,因为我当时对问题也不是很清楚. 现在我稍稍明白了点,举例来说:子类和父类保持相同的变量和方法定义,然后子类以不同实现重载该方法.这样就可以定义一个被不同子类对象使用的接口,并且子类的重载方法是在运行时被调用. 例 class supClass{ int i; int j; supClass(){ i=1; j=2; }
int plus(){return 0} }
class subClass{ int plus(){return i+j;} }
class a{ public static voed main(String args[]){ subClass bb = new subClass(); supClass aa;//定义一个通用接口 aa = bb; return bb.plus();//子类的重载方法会在运行时调用 } } ----------------------------------------------------------------------------------- 以上是我查了一些书籍后对运行时修改程序的一个认识,不知道对不对,如果有人路过,请输出你的看法,谢谢.
subClass extends supClass 另外 subClass bb = new subClass(); supClass aa;//定义一个通用接口 aa = bb; return aa.plus();//这样才能看到多态的效果
依旧没有看明白"运行时修改程序"
如果你是想实现多态的话 Father fs = new Son(); fs.method();
谢谢两位,subClass extends supClass是我忘写了,的确需要。 至于我说的“运行时修改程序”是think in java翻译的一个说法,我想多态的效果应该就是这种情况。
楼主误解了吧,所谓“修改这些成员对象”,也就是调用 getter/setter 来换一个对象吧
呵呵,好像也有点道理,不过我觉得多态也是在运行时才体现出来的。不知道还会不会有新的说法呢,再等等结帖吧。
|
|
 |
推荐文章 |
|