Interfejs projektowy Java: wymuszanie implementacji do nadpisywania w łańcuchu
Rozwijam SPI i chciałbym zdefiniowaćReportable
interfejs taki, że wszelkie implementacje muszą zastąpićtoString()
do czegoś, co ma znaczenie.
Czy w Javie jest jakikolwiek sposób na napisanie interfejsu tak, że którykolwiek z jego konkretnych implementacjimusi przesłonić obiektytoString()
? Na przykład:
<code>public interface Reportable { public String toString(); } public class Widget implements Fizz, Buzz, Reportable { // ... @Override public String toString() { // ... } } </code>
Wiem, że powyższy kod niesiła ten rodzaj zachowania, ale jest przykładem tego, czego szukam, tj. jeśliWidget
nie zastępujetoString()
pojawia się błąd kompilacji, ponieważ narusza on umowę dotyczącą interfejsu.