groovy
interface Calculator {
int add(int a, int b);
}
class CalculatorImpl implements Calculator {
int add(int a, int b) {
return a + b;
}
}
Calculator extendedCalculator = {
delegate.add(a, b) * 2
}
Calculator calculator = new CalculatorImpl()
Calculator dynamicCalculator = extendedCalculator.delegate = calculator