In general Traits are like Interfaces, but slightly different than traditional Interfaces because in Traits you can define functions which can be abstract or non-abstract both.