2015-05-11 3 views
-2

У меня есть следующие иерархии классовJava-абстрактный метод переопределение

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

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

A OBJ = новый B();

Теперь я хочу написать новую реализацию метода M в новом классе C, чтобы вызов obj.M() должен выполнить мою новую реализацию в классе C? Что мне делать? кстати я не могу изменить A obj = new C();

+4

И ваш вопрос ...? – Ray

+5

Вам нужно указать, что эта ссылка на самом деле является C. Экземпляр = новый C(); – Stultuske

+1

прочитал о наследовании, перегрузке и переопределении .... вы будете в порядке .... – ha9u63ar

ответ

0

Интерпретация вопрос «, как я должен структурировать свой код так, что я могу изменить реализацию, что OBJ ссылается от реализации В к реализации C, без изменения A obj = new B(); к A obj = new C(); (Потому что я не хочу, чтобы такое же изменение, когда я хочу использовать другую реализацию.) «

В этом случае проверьте concept of factories.

Смежные вопросы