ridurre il livello di accesso di una funzione in una classe derivata
-
09-10-2019 - |
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.
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".