herança de interface PHP

especificação de interface pode ser considerada uma classe de modelo, especificamente como executar a operação ainda precisa de olhar para a forma de escrever uma herança subclasse, prestar atenção às necessidades específicas de local e redação da seguinte forma:

  • método de interface interface deve ser a divulgação pública:
<?php
interface A{
 public function info();
}

Em que o público pode ser omitido, abreviado como segue:

<?php
interface A{
 function info();
}

Se a definição do tipo de método irá relatar um erro fatal: Método de acesso, a interface do tipo para A :: info () omitido na /wwwroot/api.php o deve estar na Linha 3 Por exemplo:

<?php
interface A{
 private function info();
}
  • Ele não requer uma interface interface de instanciação, mas precisa de implementos herdar, a variável definida na interface devem ser transmitidos, herdou a seguinte redacção:
<?php
interface A{
 private function info($name);
}
class B implements A{
  function info($name){
    echo "Hello{$name}!";
  }
}
$obj = new B();
$obj -> info('小桥');
  • a interface interface pode definir constantes, mas não permite a definição de variáveis ​​de membro, tais como:
<?php
class A {
const Num = 100;
}

Não tem problema, mas a definição de variáveis de membro como uma mensagem de erro aparece: o Parse erro: erro de sintaxe, inesperado '$ NUM' (T_VARIABLE), esperando função (T_FUNCTION) ou const (T_CONST) em /wwwroot/api.php na linha 3 , por exemplo, :

<?php
class A {
$num = 100;
}
  • Se ocorrer um erro fatal quando uma subclasse de interfaces não-método definido na classe abstrata e nenhuma classe: Erro fatal: Método de acesso, a interface do tipo para A :: info () omitido na /wwwroot/api.php o deve estar na Linha 2 , por exemplo, :
<?php
interface A{
 function info($name);
}
class B implements A{
  function a($name){
    echo "Hello{$name}!";
  }
}
  • interface de método de interface função não é recomendado para definir valores padrão, se a definição de subclasse também requer definido, por exemplo:
<?php
interface A{
 function info($name = '小明');
}
class B implements A{
  function info($name){
    echo "Hello{$name}!";
  }
}

Aparecerá Erro fatal: Declaração de B :: informação ( n uma m e ) m em s t b e c o m p a t i b l e w i t h A : : i n f o ( nome) deve ser compatível com A :: info ( name = 'Bob') em /wwwroot/api.php na linha 6erros fatais, mesmo se você passar os valores método info (), por exemplo:

<?php
interface A{
 function info($name = '小明');
}
class B implements A{
  function info($name){
    echo "Hello{$name}!";
  }
}

$obj = new B();
$obj -> info('小明');
  • Subclasses herdam várias interfaces e pode herdar uma interface entre:
//定义接口 A
interface A{
  function info();
}

//定义接口 B 并继承接口 A
interface B extends A{
  function eat($name, $food);
}

//定义子类 C 使用接口 B
class C implements B{
  function info(){
    echo '接口继承<br/>';
  }
  function eat($name = '小明', $food = '菜'){
    echo $name . "正在吃" . $food . '<br>';
  }

}

$demo = new C();
$demo -> info();
$demo -> eat();
$demo -> eat('小红', '苹果');
Lançado cinco artigos originais · ganhou elogios 0 · Vistas 4693

Acho que você gosta

Origin blog.csdn.net/xuanziran/article/details/104890549
Recomendado
Clasificación