Предположим, у меня есть 4 класса: A
, B
, SA
и SB
где B extends A
и SB extends SA
.Динамический вызов конструктора в java?
Класс A
имеет следующий конструктор:
private SA a;
public A() {
a = new SA();
}
Очевидно, когда я звоню застройщик для класса B
и так B extends A
конструктор класса A
также называется. Но в таком случае я хотел бы построить конструктор A
, чтобы сделать a = new SB();
вместо a = new SA();
.
Есть ли простой способ сделать это без , изменяя общедоступные интерфейсы как A
, так и B
?
Зависимость от инъекций! _ без изменения общедоступных интерфейсов как A, так и B_? На самом деле, нет. –
@SotiriosDelimanolis хорошо, как бы вы могли изменить общедоступные интерфейсы 'A' или' B'? Каким будет самый простой способ (меньше изменений)? – insumity
Создайте конструктор 'A', чтобы принять аргумент' SA'. –