OOP: Интерфесы

Romul

Новичок
OOP: Интерфесы

Всем Hi!
PHP:
interface Int
{
    privat function fun($var);
}
class Cla implements Int
{
    privat function fun($var);
}
надо ли указывать в методах модификатор доступа, если он такой же как в интерфейсе?
PHP:
interface Int
{
    privat function fun($var);
}
class Cla implements Int
{
    function fun($var); // доступ: private
}
Thx!
 

Romul

Новичок
Интерфес для того, чтобы показать программеру какие методы надо в классе описать. Можно ли "наследовать" из интерфеса модификатор доступа или необходимо дублировать в классе?
 

whirlwind

TDD infected, paranoid
>Интерфес для того, чтобы показать программеру какие методы надо в классе описать

Интерфейс для того, чтобы показать какие методы должны быть объявлены (т.е. можно заюзать пользователем класса). Так как защищенные и приватные использовать снаружи нельзя, -> смысла описывать такие методы в интерфейсе нет. Для описания прототипа класса используется абстрактный класс.

-~{}~ 04.08.06 16:16:

ЗЫ. еще одно полезное свойство интерфейса, это спецификация типа в прототипе функции. Позволяет избежать проверок instanceof, при 100% уверенности в наличии нужного интерфейса.
 

svetasmirnova

маленький монстрик
Можно ли "наследовать" из интерфеса модификатор доступа или необходимо дублировать в классе?
Модификатор доступа наследовать нельзя. Если не указать модификатор доступа метод будет публичным для совместимости с PHP4.
 
Сверху