Вопросы по ООП в PHP

18.69K
.

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(){} - это метод, который вызывается при клонировании обьекта, то есть обьект-то создается полюбому, дело в том, что его, к примеру, нужно заполнить начальными данными, вот и что для этого лучш
Ты про перезагрузку метода ?
.

Fenixrus, перегрузку

.

Так чем же, всё таки, интерфейс отличается от абстрактного класса?

.
Think different

L!MP, Множественным наследованием.
Но я так и не понял смысл этих интерфейсов. Какой толк от них если в них просто пишется список функция, одни названия, которые ничего не делают.

.
Folour (12.12.2012 / 12:03)
L!MP, Множественным наследованием.
Но я так и не понял смысл этих интерфейсов. Какой толк от них если в них просто пишется список функция, одни названия, которые ничего не делают.
Тоже
.

Folour, интерфейс несёт описательную роль.

Толк в том, что класс, который реализует интерфейс, должен реализовать все методы описаные в интерфейсе.

Таким образом обеспечивается полиморфизм классов реализующих один интерфейс.
Т.е все классы, реализующие один интерфейс, внешне, ведут себя одинаково, но могут сокрывать в себе различную реализацию.

Всего: 383