当前页面: 开发资料首页 → J2SE 专题 → 要在运行时修改修改类的成员,有哪些方法?
要在运行时修改修改类的成员,有哪些方法?
摘要: 要在运行时修改修改类的成员,有哪些方法?
翻看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 来换一个对象吧
呵呵,好像也有点道理,不过我觉得多态也是在运行时才体现出来的。不知道还会不会有新的说法呢,再等等结帖吧。