Sto studiando Java e sto vedendo le inner class, così mi sono imbattuto su questo codice:
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()
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?
Dall'output sono propenso a pensare che ne sia una estensione, un po come se fosse definita con la keyword "extends".