[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Суть интерфейсов и абстрактных классов
Страницы: 1, 2, 3
user_name
Добрый день. Помогите понять суть интерфейсов и абстрактных классов. Я читал про них в книге Зандстра и еще в нескольких статьях, вроде и понятно о чем говорят но главной сути не уловлю, когда их нужно использовать и чем они хороши?..
Я написал простой код. В первом случаи использовал интерфейс а во втором простое наследование классов и методов. По сути одно и то же. В обоих случаях классы Key1 и Key2 имеют два типа, свой и унаследованный от интерфейса или во втором случаи от родителя.


# Ну отделил я реализацию от представления и че? Получается дублирование.
interface Key {
public function open();
}

class Key1 implements Key {

public function open() {
$this->insert();
$this->turn();
$this->ex();
}

public function insert() {
# ..
}

public function turn() {
# ..
}

public function ex() {
# ..
}
}


class Key2 implements Key {

public function open() {
$this->insert();
$this->act();
$this->ex();
}

public function insert() {
# ..
}

public function act() {
# ..
}

public function ex() {
# ..
}
}


И наследованием
abstract class Key {

protected function open() {
$this->insert();
$this->ex();
}

public function insert() {
# ..
}

public function ex() {
# ..
}
}


class Key1 extends Key {

public function open() {
parent::open();
$this->turn();
}

public function turn() {
# ..
}
}


class Key2 extends Key {

public function open() {
parent::open();
$this->act();
}

public function act() {
# ..
}
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.