概要
コードを再利用するための仕組み。
例
定義
trait Move {
function fowerd() {
// 処理
}
function backwerd() {
// 処理
}
}
使用
class Human extends Animal {
use Move;
public function walk() {
$this->fowerd();
}
}
詳細
トレイトは単一継承の制約を減らすために作られたもの。
メソッド群を異なるクラス階層にある独立したクラスで再利用できるようにする。
多重継承やmixinにありがちな問題の回避ができる。
クラスに似ているが、トレイトは単に機能をまとめるだけもの。
インスタンスを作成することはできない。
トレイトを活用すれば、継承しなくてもクラスのメンバーに汎用メソッドを追加できるようになる。