Skip to content

Commit 2981a05

Browse files
authored
#68 oop5 final.xml (#111)
* #109 Actualización de la traducción de language/types.xml Incluyendo correcciónes de indentaición * Añadir mi usuario, ya que he revisado todo el archivo * Añadir un ejemplo que me había quedado atrás * Translate example * Update commit hash
1 parent 86eaf95 commit 2981a05

File tree

1 file changed

+46
-27
lines changed

1 file changed

+46
-27
lines changed

language/oop5/final.xml

+46-27
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<!-- EN-Revision: 5e8652131e898cd3d02cd26eeb26da718a6aaf65 Maintainer: chuso Status: ready -->
2+
<!-- EN-Revision: 907f8ab64150c8503cb9f33d274ab6a7211b86a3 Maintainer: Marqitos -->
33
<!-- Reviewed: no Maintainer: andresdzphp -->
44
<sect1 xml:id="language.oop5.final" xmlns="http://docbook.org/ns/docbook">
55
<title>Palabra clave Final</title>
@@ -16,17 +16,17 @@
1616
<?php
1717
class BaseClass {
1818
public function test() {
19-
echo "llamada a BaseClass::test()\n";
19+
echo "Llamada a BaseClass::test()\n";
2020
}
2121
2222
final public function moreTesting() {
23-
echo "llamada a BaseClass::moreTesting()\n";
23+
echo "Llamada a BaseClass::moreTesting()\n";
2424
}
2525
}
2626
2727
class ChildClass extends BaseClass {
2828
public function moreTesting() {
29-
echo "llamada a ChildClass::moreTesting()\n";
29+
echo "Llamada a ChildClass::moreTesting()\n";
3030
}
3131
}
3232
// Devuelve un error Fatal: Cannot override final method BaseClass::moreTesting()
@@ -37,33 +37,49 @@ class ChildClass extends BaseClass {
3737
</para>
3838
<para>
3939
<example>
40-
<title>Ejemplo de clase Final</title>
40+
<title>Ejemplo de clase final</title>
4141
<programlisting role="php">
4242
<![CDATA[
4343
<?php
4444
final class BaseClass {
4545
public function test() {
46-
echo "llamada a BaseClass::test()\n";
46+
echo "BaseClass::test() llamada\n";
4747
}
4848
49-
// Aquí no importa si definimos una función como final o no
49+
// Como la clase es final, la palabra clave final para el método, es redundante
5050
final public function moreTesting() {
51-
echo "llamada a BaseClass::moreTesting()\n";
51+
echo "BaseClass::moreTesting() llamada\n";
5252
}
5353
}
5454
5555
class ChildClass extends BaseClass {
5656
}
5757
// Devuelve un error Fatal: Class ChildClass may not inherit from final class (BaseClass)
58+
?>
59+
]]>
60+
</programlisting>
61+
</example>
62+
</para>
63+
<example>
64+
<title>Ejemplo de propiedad Final desde PHP 8.4.0</title>
65+
<programlisting role="php">
66+
<![CDATA[
67+
<?php
68+
class BaseClass {
69+
final protected string $test;
70+
}
71+
72+
class ChildClass extends BaseClass {
73+
public string $test;
74+
}
75+
// Devuelve un error Fatal: Cannot override final property BaseClass::$test
5876
?>
5977
]]>
60-
</programlisting>
61-
</example>
62-
</para>
63-
<para>
64-
<example xml:id="language.oop5.final.example.php81">
65-
<title>Ejemplo de constantes finales a partir de PHP 8.1.0</title>
66-
<programlisting role="php">
78+
</programlisting>
79+
</example>
80+
<example xml:id="language.oop5.final.example.php81">
81+
<title>Ejemplo de constantes finales a partir de PHP 8.1.0</title>
82+
<programlisting role="php">
6783
<![CDATA[
6884
<?php
6985
class Foo
@@ -79,19 +95,22 @@ class Bar extends Foo
7995
// Fatal error: Bar::X cannot override final constant Foo::X
8096
?>
8197
]]>
82-
</programlisting>
83-
</example>
84-
</para>
98+
</programlisting>
99+
</example>
85100

86-
<note>
87-
<simpara>
88-
Las propiedades no pueden declararse como finales: sólo las clases, métodos y constantes (a partir de PHP 8.1.0) pueden declararse como finales.
89-
</simpara>
90-
<simpara>
91-
A partir de PHP 8.0.0, los métodos privados no pueden ser declarados finales excepto el constructor.
92-
</simpara>
93-
</note>
94-
</sect1>
101+
<note>
102+
<simpara>
103+
Desde PHP 8.0.0, los métodos privados no pueden declararse como finales,
104+
excepto el <link linkend="language.oop5.decon.constructor">constructor</link>.
105+
</simpara>
106+
</note>
107+
<note>
108+
<simpara>
109+
Una propiedad que se declara <link linkend="language.oop5.visibility-members-aviz"><literal>private(set)</literal></link>
110+
es implícitamente <literal>final</literal>.
111+
</simpara>
112+
</note>
113+
</sect1>
95114
<!-- Keep this comment at the end of the file
96115
Local variables:
97116
mode: sgml

0 commit comments

Comments
 (0)