2015-05-11 130 views
-2

我有以下类层次结构爪哇抽象方法覆盖

abstract class A { 
    public abstract void M(); 
} 

class B extends A { 
    public void M() { 
    //some stuff 
    } 
} 

甲OBJ =新B();

现在我想写一个新的类C中的方法M的实现,使得调用obj.M()应该在类C中执行我的新实现?我该怎么办? 顺便说一句,我不能改变一个obj = new C();

+4

而你的问题是...? – Ray

+5

您将需要指定该引用实际上是一个C.实例= new C(); – Stultuske

+1

阅读关于继承,重载和重载....你会没事的...... – ha9u63ar

回答

0

解释你的问题作为“我应该如何组织我的代码,这样我可以改变的实施obj是否指的是从执行B到实现C,在不改变A obj = new B();A obj = new C();(因为我不想做每当我想使用不同的实现时都会发生同样的变化)。“

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