È possibile sovrascrivere un metodo astratto di classe astratta utilizzando la classe anonima ?. Lo strumento FindBugs sta emettendo il problema "Uncallable method of anonymous class". Per ulteriori informazioni, consultare l'esempio seguenteUna classe anonima può implementare il metodo non astratto della classe astratta?
public class BaseClass {
// This class is a Library Class.
}
public abstract class AbstractBaseClass extends BaseClass {
public abstract void abstractMethod();
public void nonAbstractMethod() {}
}
public abstract class DerivedAbstractClass extends AbstractBaseClass {
// Here Some more additional methods has been added
}
public class DemoAbstract {
public static void main(String[] args) {
init();
}
private static void init() {
DerivedAbstractClass derivedAbstractClass = new DerivedAbstractClass() {
@Override
public void abstractMethod() {
}
@Override
public void nonAbstractMethod() {
// Is it possible to override like this?
}
};
}
}
Sì, è possibile. Questo esatto esempio (copiato e incollato, nessuna modifica) genera l'avviso? – immibis
Ovviamente puoi sovrascriverlo, ma anche se non lo fai, la classe anonima fornisce ancora un'implementazione, quindi una domanda migliore sarebbe: una classe anonima non può implementare questo metodo? – Stultuske
Ciao immibis, ho modificato il mio esempio. Si prega di verificare l'esatto esempio che sto seguendo. –