Для меня мне пришлось добавить репозиторий EPEL. Именно здесь появился мой php-mcrypt:
[root@system ~]$ repoquery -i php-mcrypt
Name : php-mcrypt
Version : 5.3.3
Release : 1.el6
Architecture: i686
Size : 39225
Packager : Fedora Project
Group : Development/Languages
URL : http://www.php.net/
Repository : epel <----------
Summary : Standard PHP module provides mcrypt library support
Source : php-extras-5.3.3-1.el6.src.rpm
Description :
Standard PHP module provides mcrypt library support
Вы можете включить репо EPEL с инструкциями здесь:
Вы не можете наследовать от класса и уменьшить видимость унаследованных методов. С другой стороны, код, который вы показываете, не использует наследование. Если вам нужно расширить класс (чтобы вы унаследовали все состояние и поведение от базового класса), но также не хотите показывать все унаследованные методы как публичные, вот способ сделать это:
public final class Derived {
private final Base base = new Base() { // extending base class here
@Override
public void foo() {
Derived.this.foo();
}
@Override
public void bar() {
Derived.this.bar();
}
};
public void foo() {
// Implement foo here
}
private void bar() {
// Implement bar here
}
}
[ 1111] Таким образом, идея заключается в том, чтобы инкапсулировать реализацию класса, расширяющего Base
, в поле private final
нового класса Derived
, который предоставляет только метод foo
, сохраняя при этом метод bar
private
, Этот анонимный внутренний класс просто делегирует методы класса Derived
. В качестве дополнительной меры безопасности мы также делаем класс Derived
final
.
Вы не можете уменьшить видимость метода, унаследованного от
. Поэтому, если супер-метод общедоступен, вы не можете перейти к защищенному или частному
Этот вопрос уже охватывает этот вопрос: Невозможно уменьшить видимость метода, унаследованного от родителя