哪些编程语言支持委托隐式接口实现?

What programming languages support implicit interface implementation by delegation?

Kotlin 可以做这个非常巧妙的技巧:

 class Derived(b: Base) : Base by b

这使得你的 class Derived 实现 Base,并且 Base 的所有未在 Derived 中明确实现的方法自动委托给成员 b。我不使用 Kotlin 编程,丢失 'this' 指针可能会受到很大限制,但它看起来是一件如此简单的事情,可能意味着每种语言都应该拥有的大量可维护性。

一些有代表的语言:

  • Xtend

  • Swift

  • Groovy

  • 所有允许覆盖某种缺失方法的语言,都可以轻松实现委托(使用通常所谓的 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

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;