⊗ppOpIhCn 30 of 107 menu

Construtor na herança em OOP no PHP

Na herança, é possível sobrescrever o construtor da classe pai. Vamos ver um exemplo. Suponha que temos a seguinte classe pai:

<?php class User { private $name; private $surn; public function __construct($name, $surn) { $this->name = $name; $this->surn = $surn; } public function getName() { return $this->name; } public function getSurn() { return $this->surn; } } ?>

Suponha que a seguinte classe herda da classe pai:

<?php class Student extends User { } ?>

Suponha que queremos estender o construtor na classe filha, adicionando parâmetros adicionais a ele:

<?php class Student extends User { private $year; public function __construct($name, $surn, $year) { } } ?>

Neste caso, precisamos obrigatoriamente chamar o construtor da classe pai na primeira linha usando parent::__construct():

<?php class Student extends User { private $year; public function __construct($name, $surn, $year) { parent::__construct($name, $surn); } } ?>

O comando parent::__construct() é essencialmente o construtor da classe pai. Portanto, vamos passar os parâmetros necessários para ele:

<?php class Student extends User { private $year; public function __construct($name, $surn, $year) { parent::__construct($name, $surn); } } ?>

Agora, na classe filha, vamos atribuir o ano de ingresso à sua própria propriedade na classe filha:

<?php class Student extends User { private $year; public function __construct($name, $surn, $year) { parent::__construct($name, $surn); $this->year = $year; } } ?>

Vamos criar um getter para o ano de ingresso:

<?php class Student extends User { private $year; public function __construct($name, $surn, $year) { parent::__construct($name, $surn); $this->year = $year; } public function getYear() { return $this->year; } } ?>

Suponha que a classe Employee herda da classe User desta lição.

Sobrescreva o construtor da classe pai na classe Employee, adicionando a ele um parâmetro com a idade e o salário.

Crie getters para a idade e o salário.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar