Domanda

C'è la possibilità di ridurre il livello di accesso di una funzione in una classe derivata in PHP?

di esempio (... significa più codice)

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

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

Ora mi should'nt essere in grado di chiamare MyFunc ioni di un oggetto bar. Ma facendo in questo modo non sembra essere valido in PHP. Qualsiasi altro modo? So che potrei implementare una funzione di vuoto, ma io non voglio esporre la funzione nell'interfaccia a tutti.

È stato utile?

Soluzione

La sua non è valido per OOP in ogni caso. Se si implementa un metodo pubblico, prometti, che questa classe e tutti i bambini fornisce questa funzionalità. Per rimuovere un mezzo metodo pubblico, che si rompe le promesse;). Poiché tutti i metodi e le proprietà pubbliche definiscono l'interfaccia della classe e la rottura un'interfaccia non è mai una buona idea

Senza alcun informazioni più chiare su ciò che si sta per fare suggerisco di buttare solo un'eccezione, qualcosa come "non supportata".

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top