Sto studiando Java e sto vedendo le inner class, così mi sono imbattuto su questo codice:
Ciò che non capisco con certezza è se la classe anonima A definita all'interno della funzione f() rappresenta un estensione della classe A definita inizialmente oppure la sotituisce?codice:class A { public void t() { System.out.println("A.t()"); } public void g() { System.out.println("A.g()"); } } class B { public static A f() { return new A() { public void g() { System.out.println("Override A.g()"); } }; } } public class Test { public static void main(String[] args) { A a = B.f(); a.g(); a.t(); } } //Output Override A.g() A.t()
Dall'output sono propenso a pensare che ne sia una estensione, un po come se fosse definita con la keyword "extends".

Rispondi quotando