📄 language.oop5.final.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html> <head> <title>Final Keyword</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head> <body><div style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="language.oop5.magic.html">Magic Methods</a></div> <div class="next" style="text-align: right; float: right;"><a href="language.oop5.cloning.html">Object cloning</a></div> <div class="up"><a href="language.oop5.html">Classes and Objects (PHP 5)</a></div> <div class="home"><a href="index.html">PHP Manual</a></div></div><hr /><div id="language.oop5.final" class="sect1"> <h2 class="title">Final Keyword</h2> <p class="para"> PHP 5 introduces the final keyword, which prevents child classes from overriding a method by prefixing the definition with final. If the class itself is being defined final then it cannot be extended. </p> <div class="example"> <p><b>Example #1 Final methods example</b></p> <div class="example-contents"><div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB"><?php<br /></span><span style="color: #007700">class </span><span style="color: #0000BB">BaseClass </span><span style="color: #007700">{<br /> public function </span><span style="color: #0000BB">test</span><span style="color: #007700">() {<br /> echo </span><span style="color: #DD0000">"BaseClass::test() called\n"</span><span style="color: #007700">;<br /> }<br /> <br /> final public function </span><span style="color: #0000BB">moreTesting</span><span style="color: #007700">() {<br /> echo </span><span style="color: #DD0000">"BaseClass::moreTesting() called\n"</span><span style="color: #007700">;<br /> }<br />}<br /><br />class </span><span style="color: #0000BB">ChildClass </span><span style="color: #007700">extends </span><span style="color: #0000BB">BaseClass </span><span style="color: #007700">{<br /> public function </span><span style="color: #0000BB">moreTesting</span><span style="color: #007700">() {<br /> echo </span><span style="color: #DD0000">"ChildClass::moreTesting() called\n"</span><span style="color: #007700">;<br /> }<br />}<br /></span><span style="color: #FF8000">// Results in Fatal error: Cannot override final method BaseClass::moreTesting()<br /></span><span style="color: #0000BB">?></span></span></code></div> </div> </div> <div class="example"> <p><b>Example #2 Final class example</b></p> <div class="example-contents"><div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB"><?php<br /></span><span style="color: #007700">final class </span><span style="color: #0000BB">BaseClass </span><span style="color: #007700">{<br /> public function </span><span style="color: #0000BB">test</span><span style="color: #007700">() {<br /> echo </span><span style="color: #DD0000">"BaseClass::test() called\n"</span><span style="color: #007700">;<br /> }<br /><br /> </span><span style="color: #FF8000">// Here it doesn't matter if you specify the function as final or not<br /> </span><span style="color: #007700">final public function </span><span style="color: #0000BB">moreTesting</span><span style="color: #007700">() {<br /> echo </span><span style="color: #DD0000">"BaseClass::moreTesting() called\n"</span><span style="color: #007700">;<br /> }<br />}<br /><br />class </span><span style="color: #0000BB">ChildClass </span><span style="color: #007700">extends </span><span style="color: #0000BB">BaseClass </span><span style="color: #007700">{<br />}<br /></span><span style="color: #FF8000">// Results in Fatal error: Class ChildClass may not inherit from final class (BaseClass)<br /></span><span style="color: #0000BB">?></span></span></code></div> </div> </div> </div><hr /><div style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="language.oop5.magic.html">Magic Methods</a></div> <div class="next" style="text-align: right; float: right;"><a href="language.oop5.cloning.html">Object cloning</a></div> <div class="up"><a href="language.oop5.html">Classes and Objects (PHP 5)</a></div> <div class="home"><a href="index.html">PHP Manual</a></div></div></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -