interface
// スタックはpushとpopを持つ StackInterface: interface{ push; pop; } // 簡単のため、配列を継承してスタックを作る MyStack: class(Array){ push: Array::push_back; pop: Array::pop_back; } hoge: MyStack(); // is演算子で、interfaceと同じメンバを持つか調べられる (hoge is StackInterface).p; //=> true
同じメンバを持っているかを調べるのはコストが高いように思う人がいるかもしれませんが、Xtalはis演算子の結果をキャッシュするので問題ないレベルになるのではないかと考えてます。