2

PHP の派生クラスで関数のアクセス レベルを下げる可能性はありますか?

例 (... より多くのコードを意味します)

class foo
{
  public function myFunction() { ... }
  public function myOtherFunction() { ... }
}

class bar extends foo
{
  private function myFunction() { ... }
}

MyFuncこれで、ion をbarオブジェクトと呼ぶことができなくなりました。しかし、この方法は PHP では有効ではないようです。その他の方法で?空の関数を実装できることはわかっていますが、インターフェイスで関数を公開したくありません。

4

1 に答える 1

4

とにかく、OOPでは無効です。public メソッドを実装する場合は、このクラスとすべての子がこの機能を提供することを約束します。パブリック メソッドを削除するということは、約束を破ることを意味します;) すべてのパブリック メソッドとプロパティはクラスのインターフェイスを定義するため、インターフェイスを壊すことは決して良い考えではありません。

何をしようとしているのかについて明確な情報がなければ、「サポートされていません」などの例外をスローすることをお勧めします。

于 2010-12-14T10:28:50.860 に答える