1 2 3 4 5 6 7 8 9 10 11 12 13 14
abstract class Component class Button extends Component { def sayHey: Unit = Console.println("Hey, I'm a button") } abstract class Origin { val delegate: Component } object main extends Origin with App { val delegate: Component { def sayHey: Unit } = new Button delegate.sayHey }