⊗ppOpFnCl 63 of 107 menu

Classes abstratas em OOP em PHP

Suponha que você tenha uma classe User, e herdando dela estão as classes Employee e Student.

Presume-se que você irá criar objetos das classes Employee e Student, mas objetos da classe User - não irá, pois esta classe é usada apenas para agrupar propriedades e métodos comuns dos seus herdeiros.

Neste caso, você pode forçar a proibição de criar objetos da classe User, para que você ou outro programador em algum lugar não os crie acidentalmente.

Para isso existem as chamadas classes abstratas. Classes abstratas são classes destinadas à herança. Além disso, objetos de tais classes não podem ser criados.

Para declarar uma classe como abstrata, é necessário escrever a palavra-chave abstract na sua declaração:

<?php abstract class User { } ?>

Então, vamos escrever a implementação da classe abstrata User. Suponha que ela tenha uma propriedade privada name, e também getters e setters para ela:

<?php abstract class User { private $name; public function getName() { return $this->name; } public function setName($name) { $this->name = $name; } } ?>

A tentativa de criar um objeto da classe User causará um erro:

<?php $user = new User; // causará um erro ?>

Mas herdar da nossa classe será possível. Vamos criar a classe Employee, que herdará da nossa classe abstrata User:

<?php class Employee extends User { private $salary; public function getSalary() { return $this->salary; } public function setSalary($salary) { $this->salary = $salary; } } ?>

Vamos criar um objeto da classe Employee - tudo funcionará:

<?php $employee = new Employee; $employee->setName('john'); // método do pai, ou seja, da classe User $employee->setSalary(1000); // método próprio, ou seja, da classe Employee echo $employee->getName(); // exibirá 'john' echo $employee->getSalary(); // exibirá 1000 ?>

Crie uma classe abstrata Figure, que representa uma figura geométrica. Deixe que classes para o círculo, retângulo e quadrado herdem dela.

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