<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Curso_POO_PHP_Clases_e_m%C3%A9todos_abstractos</id>
	<title>Curso POO PHP Clases e métodos abstractos - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Curso_POO_PHP_Clases_e_m%C3%A9todos_abstractos"/>
	<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Curso_POO_PHP_Clases_e_m%C3%A9todos_abstractos&amp;action=history"/>
	<updated>2026-10-26T14:29:27Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://manuais.iessanclemente.net/index.php?title=Curso_POO_PHP_Clases_e_m%C3%A9todos_abstractos&amp;diff=36271&amp;oldid=prev</id>
		<title>Vlourido en 23:41 12 jul 2013</title>
		<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Curso_POO_PHP_Clases_e_m%C3%A9todos_abstractos&amp;diff=36271&amp;oldid=prev"/>
		<updated>2013-07-12T23:41:06Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Clases e métodos abstractos ==&lt;br /&gt;
&lt;br /&gt;
A partires de PHP5 introducíronse na linguaxe as clases e os métodos abstractos.&lt;br /&gt;
&lt;br /&gt;
As [http://www.php.net/manual/es/language.oop5.abstract.php clases abstractas] son semellantes aos interfaces en que a partires delas non se poden instanciar obxectos. Estas clases poden ter dous tipos de métodos:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Métodos regulares&amp;#039;&amp;#039;&amp;#039;, que inclúen o seu código, semellantes aos que xa vimos.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Métodos abstractos&amp;#039;&amp;#039;&amp;#039;, que do mesmo xeito que nos interfaces, declaran soamente a estrutura do método pero non inclúen código. Estes métodos deben ser implementados obrigatoriamente por calquera clase non abstracta que herde da clase abstracta.&lt;br /&gt;
&lt;br /&gt;
Calquera clase que defina un método abstracto debe ser declarada como abstracta (é lóxico pois non ten implementado algún método e por tanto non se poderán instanciar obxectos a partires dela).&lt;br /&gt;
&lt;br /&gt;
Por exemplo, se non imos traballar con obxectos da clase Produto, poderíamos facela abstracta e empregala como base para definir os métodos comúns ás clases que deriven dela:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
abstract class Produto {&lt;br /&gt;
    public $codigo;&lt;br /&gt;
    public $nome;&lt;br /&gt;
    public $nome_corto;&lt;br /&gt;
    public $PVP;&lt;br /&gt;
 &lt;br /&gt;
    public function mostra_codigo() {&lt;br /&gt;
        print &amp;quot;&amp;lt;p&amp;gt;&amp;quot; . $this-&amp;gt;codigo . &amp;quot;&amp;lt;/p&amp;gt;&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    // O seguinte método deberá ser implementado nas clases que deriven de Produto&lt;br /&gt;
    abstract public function mostra_produto();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Outra diferenza entre as clases abstractas e os interfaces é que, tal e como acabas de ver, as primeiras poden conter atributos e os interfaces non.&lt;br /&gt;
&lt;br /&gt;
En canto á herdanza múltiple, as clases abstractas compórtanse como calquera outra clase. Isto é, non se permite crear unha clase que herde de máis de unha clase, sexa ou non abstracta. Esta é unha das principais vantaxes dos interfaces sobre as clases abstractas, pois como xa vimos é posible crear unha clase que implemente dous ou máis interfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[Usuario:Vlourido|Víctor Lourido]] 22:49 12 jul 2013 (CEST)&lt;/div&gt;</summary>
		<author><name>Vlourido</name></author>
	</entry>
</feed>