Java抽象方法覆盖

时间:2015-05-11 11:39:27

标签: java inheritance abstract

我有以下类层次结构

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();

1 个答案:

答案 0 :(得分:0)

将您的问题解释为"我应该如何构建我的代码,以便我可以将obj引用的A的实现从实现B更改为实现C,而不将A obj = new B();更改为{{ 1}}(因为每当我想使用不同的实现时,我都不想做同样的改变。)"

在这种情况下,请查看concept of factories