我有以下类层次结构
abstract class A {
public abstract void M();
}
class B extends A {
public void M() {
//some stuff
}
}
obj = new B();
现在我想在新的C类中编写方法M的新实现,这样调用obj.M()应该在C类中执行我的新实现?我该怎么办? 顺便说一句,我不能改变一个obj = new C();
答案 0 :(得分:0)
将您的问题解释为"我应该如何构建我的代码,以便我可以将obj引用的A的实现从实现B更改为实现C,而不将A obj = new B();
更改为{{ 1}}(因为每当我想使用不同的实现时,我都不想做同样的改变。)"
在这种情况下,请查看concept of factories。