ok, forse ho capito, ma puoi farmi un esempio?
ok, forse ho capito, ma puoi farmi un esempio?
Ecco un esempio ... parecchio terra-terra e sicuramente non utile nella realtà.
codice:public class ProvaDecorator { public static void main(String[] args) { Animale gatto = new Gatto(); gatto.emettiVerso(); System.out.println("------------"); Animale gatto2 = new AnimaleVersoDoppio(gatto); gatto2.emettiVerso(); } } interface Animale { void emettiVerso(); } final class Gatto implements Animale { // Classe final, non estendibile! public void emettiVerso() { System.out.println("miao"); } } class AnimaleVersoDoppio implements Animale { private Animale animale; public AnimaleVersoDoppio(Animale animale) { this.animale = animale; } public void emettiVerso() { animale.emettiVerso(); animale.emettiVerso(); } }
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
In questo modo però non mi è utile, chiarisco meglio la situazione >> C'è una classe final chiamata Comandi con all'interno un metodo di nome flags() pubblica non statica che riceve alcuni parametri. L'oggetto di questa classe viene dichiarato nella classe principale del programma.
Lo scopo è quello di andare a modificare o a 'overraidare' quel metodo.
Capisco ... era solo un modo per darti qualche spunto in più.
Ok, però a questo punto mi sorgono altre domande: la classe Comandi l'hai scritta tu? Se sì, perché l'hai fatta final? E se l'hai scritta tu, cosa ti impedisce/proibisce di togliere il final?
Se ammettiamo, come ipotesi, che tu possa estendere Comandi, poi un oggetto della classe estesa dove lo usi? Al posto dell'oggetto Comandi che usi attualmente? O per altro?
Purtroppo, è ovvio, non ho io la visione che hai tu di quel codice e di quali sono gli obiettivi da raggiungere.![]()
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet