Herança no PHP

Herança no PHP
As três principais características da programação orientada a objetos incluem encapsulamento, herança e polimorfismo. Ao programar, pode ser necessário usar determinado código várias vezes, e o uso da herança reduz a repetição de reescrever o código manualmente, reutilizando o código. A herança é um método para criar uma nova classe, herdando uma classe base. O objeto da nova classe poderá acessar todos os membros da classe da nova classe, bem como a classe base, através da herança. Dessa forma, o mesmo código pode ser reutilizado muitas vezes escrevendo -o apenas uma vez. PHP usa o ampliar palavra -chave para herança. Este tutorial mostra como implementar a herança usando o script PHP.

Sintaxe da herança

A sintaxe da herança é mostrada abaixo.

Classe Newclass estende a Oldclass

..

Aqui, Newclass é chamado de criança, derivado, ou subaula; e OldClass é chamado de pai, base, ou superaula. A próxima parte deste tutorial mostra alguns exemplos de uso de herança no PHP.

Exemplo 1: uso simples de herança

O script a seguir mostra um simples uso da herança no script PHP. No script, Funcionário é a classe pai que contém duas variáveis ​​de classe, e o setData () O método é usado para inicializar as variáveis ​​de classe. O Executivo A classe é a classe infantil herdada do Funcionário classe usando o ampliar palavra -chave. Ele contém uma variável de classe e um método chamado mostrar detalhes() Para imprimir as variáveis ​​de classe das classes de pais e filhos. Depois de criar o objeto da classe infantil, os métodos das classes pais e filhos serão chamados usando o objeto de classe infantil.

// classe pai
Funcionário da classe
// variáveis ​​da classe pai
Nome público $;
departamento público;
// Inicialize dados básicos
Função pública setData ()

$ this-> name = "John Abraham";
$ this-> departamento = "hr";


// Classe infantil
Classe Executive estende o funcionário
// Variável da classe infantil
public $ designação = "Executivo de marketing";
// Imprimir detalhes do funcionário
Função pública ShowDetails ()

se ($ this-> nome != "" && $ this-> designação != "" && $ this-> departamento != "")

eco "Detalhes dos funcionários:
";
eco "nome:".$ this-> nome."
";
eco "Designação:".$ this-> designação."
";
eco "Departamento".$ this-> departamento."
";



// Crie objeto a classe infantil
$ objemp = new Executive ();
// Ligue para o método da classe pai
$ objemp-> setData ();
// Ligue para o método da classe infantil
$ objemp-> showDetails ();
?>

Saída

A saída a seguir aparecerá após a execução do script. Aqui, o nome do funcionário e os valores do departamento são impressos da classe pai e o valor de designação do funcionário é impresso da classe infantil.

Exemplo 2: herança com substituição de método

A substituição do método ocorre quando um método com o mesmo nome é declarado na classe dos pais e da criança. O script a seguir mostra herança com substituição de método usando o script PHP. Aqui o mostrar detalhes() O método é declarado na classe pai e na classe infantil. O objeto da classe pai acessará o mostrar detalhes() método da classe pai e o objeto da classe infantil acessarão o mostrar detalhes() Método da classe infantil.

// classe pai
Funcionário da classe
// variáveis ​​da classe pai
Nome público $;
departamento público;
// Inicialize dados
função __construct ()

$ this-> name = "Janifer Lopez";
$ this-> departamento = "vendas";

// Imprimir detalhes do funcionário
Função pública ShowDetails ()

eco "Detalhes dos funcionários: [da classe pai]
";
eco "nome:".$ this-> nome."
";
eco "Departamento".$ this-> departamento."

";


// Classe infantil
Classe Executive estende o funcionário
// Variável da classe infantil
public $ designation = "Sales Executive";
// Imprimir detalhes do funcionário
Função pública ShowDetails ()

eco "Detalhes dos funcionários: [da classe infantil]
";
eco "nome:".$ this-> nome."
";
eco "Designação:".$ this-> designação."
";
eco "Departamento".$ this-> departamento."
";


// Crie objeto de classe pai
$ objEmployee = new funcionário ();
// Ligue para o método da classe pai
$ objemployee-> showDetails ();
// Crie objeto de classe infantil
$ objexecutive = new Executive ();
// Ligue para o método da classe infantil
$ objexecutive-> showDetails ();
?>

Saída

A saída a seguir aparecerá após a execução do script. Quando o mostrar detalhes() O método é chamado com o objeto da classe pai, ele mostrará a saída da classe pai. Quando o mostrar detalhes() O método é chamado com o objeto da classe infantil, ele mostrará a saída da classe infantil.

Exemplo 3: Chamada de construtor pai dentro do construtor infantil

Quando os pais e a classe infantil contêm um método construtor, a classe infantil pode chamar o construtor da classe pai. O script a seguir mostra como chamar o construtor da classe pai do construtor da classe infantil. O Pai :: __ Construct () A declaração é usada para chamar o construtor pai.

// classe pai
Funcionário da classe
// variáveis ​​da classe pai
Nome público $;
departamento público;
// Inicialize dados
função __construct ($ nome, $ dept)

$ this-> nome = $ nome;
$ this-> departamento = $ departamento;


// Classe infantil
Classe Executive estende o funcionário
// variáveis ​​de classe infantil
Designação pública $;
salário público;
// Inicialize dados
função __construct ($ nome, $ departamento, $ designação, $ salário)

// Ligue para o construtor da classe pai
pai :: __construct ($ nome, $ departamento);
$ this-> designação = $ designação;
$ this-> salário = $ salário;

// Imprimir detalhes do funcionário
Função pública ShowDetails ()

eco "Detalhes dos funcionários:
";
eco "nome:".$ this-> nome."
";
eco "Designação:".$ this-> designação."
";
eco "Departamento".$ this-> departamento."
";
eco "Salário: $".$ this-> salário."
";


// Crie objeto de classe infantil
$ objexecutive = new Executive ('Jafar Iqbal', 'Marketing', 'Marketing Executive', 4500);
// Ligue para o método da classe infantil
$ objexecutive-> showDetails ();
?>

Saída

A saída a seguir aparecerá após a execução do script. Aqui, o nome e o departamento do funcionário são inicializados pelo construtor pai, e a designação e o salário do funcionário são inicializados pelo construtor infantil.

Exemplo 4: Implementar herança hierárquica

O script a seguir mostra como implementar a herança hierárquica no PHP. Aqui, Classe2 é criado herdando classe 1, e Classe3 é criado herdando Classe2. Neste exemplo, três métodos são definidos em três classes. O Classe3 O objeto é criado para chamar os métodos de todas as classes.

// classe pai
classe Class1
Função ShowMethod1 ()

eco "É a classe pai
";


// Classe infantil
classe Class2 estende a classe1
função showMethod2 ()

eco "é a classe infantil
";


// Classe de neto
classe Class3 estende a classe2
função showMethod3 ()

eco "é a classe do neto";


$ object = new Class3 ();
$ object-> showMethod1 ();
$ object-> showMethod2 ();
$ object-> showMethod3 ();
?>

Saída

A saída a seguir aparecerá após a execução do script. Aqui, a primeira linha de texto apareceu de classe 1, a segunda linha de texto apareceu de Classe2, e a terceira linha de texto apareceu de Classe3.

Vídeo tutorial

Conclusão

Este tutorial mostrou vários tipos diferentes de herança usando o script PHP. Depois de ler este artigo, você deve entender o conceito de herança e seus usos básicos no script PHP.