Идея интерфейса состоит в том, чтобы определить контракт между объектами вызывающей и вызываемой сторон: какие методы могут быть доступны, какие параметры требуются и какие данные будут возвращены.
Чтобы этот контракт имел какой-либо смысл, эти методы должны быть доступны, чтобы "внешний мир" мог их вызывать.
Когда вы опускаете модификаторы доступа, компилятор Flex принимает internal
в качестве значения по умолчанию, что означает, что классы из одного и того же пакета имеют разрешение на доступ к методам - и поэтому в некоторой степени этот контракт кажется выполненным. То же самое будет верно для любого другого пространства имен.
Как ни странно, Adobe явно не позволяет этого : Ваши реализации методов должны быть public
.
Однако вы можете объявить свой интерфейс как internal
, так что только классам из пакета разрешено его реализовывать, и это также оставляет способ сохранить внутренний API - если это было ваше намерение.