Java: дизайн интерфейса, чтобы заставить реализации переопределять toString
Я разрабатываю SPI и хотел бы определитьReportable
интерфейс такой, что любые реализации должны переопределятьtoString()
к чему-то значимому.
Есть ли способ в Java написать такой интерфейс, чтобы любая из его конкретных реализацийmust переопределить объектtoString()
? Например:
<code>public interface Reportable { public String toString(); } public class Widget implements Fizz, Buzz, Reportable { // ... @Override public String toString() { // ... } } </code>
Я знаю, что приведенный выше код неforce такого рода поведение, но это пример того, что я ищу, то есть еслиWidget
не переопределяетtoString()
Вы получаете ошибку компиляции, потому что это нарушает контракт интерфейса.