Is the following solution is correct with respect to Forwarding and Delegation?
Q: Implement forwarding and delegation semantics in the method m() in the respective classes.
Code: Alles auswählen
trait Base {
def m();
def f();
}
class Callee extends Base{
override def m(): Unit = {
m(this)
}
override def f(): Unit = {}
def m(self: Base): Unit ={
self.f()
}
}
class OtherClassForwarding extends Base {
var callee = new Callee
override def m(): Unit = {
//Forwarding
super.m()
}
override def f(): Unit = {}
}
class otherClassDelegation extends Base{
var callee = new Callee
override def m(): Unit = {
//Delegation
callee.m(this)
}
override def f(): Unit = {}
}