Fenix_61, обычный класс можно наследовать только один, а интерфейсов можно наследовать несколько. к примеру
abstract class A {
function printHello(){}
}
interface B {
function printName(){}
}
interface C {
function printOther(){}
}
class Print extends A implements B, C {
function getData(){
echo $this->printHello() . $this->printName() . $this.printOther();
}
}
Так а смысл от интерфейсов если в них хранятся только описания функций?
~XeOn~, Я как пример привел, можно не только описания хранить, но и методы и переменные, это фактически тот же самый абстрактный класс, как я понял
Koenig (11.12.2012 / 19:09)
No-Tactic, разве вторым вариантом ты создашь объект? помоему просто свойства определишь для текущего
__clone(){} - это метод, который вызывается при клонировании обьекта, то есть обьект-то создается полюбому, дело в том, что его, к примеру, нужно заполнить начальными данными, вот и что для этого лучше использовать, стандартный конструктор, или написать все ручками.
No-Tactic (12.12.2012 / 05:21)
__clone(){} - это метод, который вызывается при клонировании обьекта, то есть обьект-то создается полюбому, дело в том, что его, к примеру, нужно заполнить начальными данными, вот и что для этого лучш
Ты про перезагрузку метода ?
Так чем же, всё таки, интерфейс отличается от абстрактного класса?
L!MP, Множественным наследованием.
Но я так и не понял смысл этих интерфейсов. Какой толк от них если в них просто пишется список функция, одни названия, которые ничего не делают.
Folour, интерфейс несёт описательную роль.
Толк в том, что класс, который реализует интерфейс, должен реализовать все методы описаные в интерфейсе.
Таким образом обеспечивается полиморфизм классов реализующих один интерфейс.
Т.е все классы, реализующие один интерфейс, внешне, ведут себя одинаково, но могут сокрывать в себе различную реализацию.