class A { say() { print "A"; } } class B < A { getClosure() { fun closure() { super.say(); } return closure; } say() { print "B"; } } class C < B { say() { print "C"; } } C().getClosure()(); // out: A