Knayz, множественное наследование не делают из-за возможных конфликтов, посмотри на http://php.net/trait
Абстрактный класс без реализации действительно может заменять интерфейсы, но интерейс гарантирует, что реализации не будет. Мне, кстати, абстрактные классы вместо интерфейсов больше по душе, но это из-за неидеальности жизни.
PHP:
<?php
trait A {
public function smallTalk() {
echo 'a';
}
public function bigTalk() {
echo 'A';
}
}
trait B {
public function smallTalk() {
echo 'b';
}
public function bigTalk() {
echo 'B';
}
}
class Talker {
use A, B {
B::smallTalk insteadof A;
A::bigTalk insteadof B;
}
}
class Aliased_Talker {
use A, B {
B::smallTalk insteadof A;
A::bigTalk insteadof B;
B::bigTalk as talk;
}
}
?>