Kotlin可以做到这一点非常巧妙:
class Derived(b: Base) : Base by b
使您的班级Derived
实施Base
,并且Base
中未明确实施的Derived
的所有方法都会自动委托给成员b
。我没有在Kotlin中编程,丢失'this'
指针可能是非常有限的,但它看起来像一个简单的事情,可能意味着每个语言应该具有的可维护性。
答案 0 :(得分:1)
代表的一些语言:
所有允许覆盖某种Missing Method的语言都可以轻松实现委派(使用通常称为missing method proxy
的):即:Ruby,Python,JavaScript es6,Smalltalk
使用Ruby(取自here)缺少方法代理的示例:
class Proxy
def initialize(subject)
@subject = subject
end
private
def method_missing(method, *args, &block)
@subject.send(method, *args, &block)
end
end
proxied_array = Proxy.new([1,2,3])
puts proxied_array.size # 3
答案 1 :(得分:0)
Delphi has implements keyword
IMyIntf = interface
procedure DoWork1();
procedure DoWork2();
...
end;
TMyClass = class(TInterfacedObject, IMyIntf)
private
FIntf: IMyIntf;
public
property Prop: IMyIntf read FIntf implements IMyIntf;
end;