Я интерфейс называется Worker
, который я хочу, чтобы выставить так, что конечный пользователь может просто позвонить:Предотвратить абстрактные реализации переопределения определенного метода
Worker w = WorkerFactory.createInstance();
w.mainBit();
Как я могу предотвратить классы, которые расширяют свой AbstractWorker
класс от предоставления их собственный внедрение метода mainBit
?
Это структура у меня до сих пор:
interface Worker {
void mainBit();
}
class WorkerFactory {
public static Worker createInstance() {
return new WorkerImpl();
}
}
abstract class AbstractWorker implements Worker {
@Override
public void mainBit() {
this.doThing1();
this.doThing2();
}
public abstract void doThing1();
public abstract void doThing2();
}
class WorkerImpl extends AbstractWorker {
@Override
public void doThing1() {
}
@Override
public void doThing2() {
}
@Override
public void mainBit() {
// I don't want classes to override this functionality
}
}
Не знал, что вы тоже можете сделать методы окончательными. Большое спасибо! – CodingIntrigue