I remember where I saw this sentence, abstract class extracts the analogous part. This sentence looks funny, but in fact it says abstraction The truth about classes and the role of abstract classes is that when you find that many of your classes use many methods that you keep rewriting, then you can consider using abstract classes. You may say, "I can't rewrite a class." For each public class, I instantiate this public class and call the same method." This is OK. In fact, this is what the abstract class does, but it saves you the step of instantiation, so that You are as convenient as directly calling the abstract method of the PHP abstract class, and you can also overload this method. Such as:
<ol class="dp-xml"> <li class="alt"><span><span>abstract class BaseShop </span></span></li> <li><span>{ </span></li> <li class="alt"><span>public function buy($gid) </span></li> <li><span>{ </span></li> <li class="alt"><span>echo('你购买了ID为 :'.$gid.'的商品'); </span></li> <li><span>} </span></li> <li class="alt"><span>public function sell($gid) </span></li> <li><span>{ </span></li> <li class="alt"><span>echo('你卖了ID为 :'.$gid.'的商品'); </span></li> <li><span>} </span></li> <li class="alt"><span>public function view($gid) </span></li> <li><span>{ </span></li> <li class="alt"><span>echo('你查看了ID为 :'.$gid.'的商品'); </span></li> <li><span>} </span></li> <li class="alt"><span>} </span></li> <li><span>class BallShop extends BaseShop </span></li> <li class="alt"><span>{ </span></li> <li> <span>var $</span><span class="attribute">itme_id</span><span> = </span><span class="attribute-value">null</span><span>; </span> </li> <li class="alt"><span>public function __construct() </span></li> <li><span>{ </span></li> <li class="alt"> <span>$this-</span><span class="tag">></span><span class="attribute">itme_id</span><span> = </span><span class="attribute-value">2314</span><span>; </span> </li> <li><span>} </span></li> <li class="alt"><span>public function open() </span></li> <li><span>{ </span></li> <li class="alt"> <span>$this-</span><span class="tag">></span><span>sell($this-</span><span class="tag">></span><span>itme_id); </span> </li> <li><span>} </span></li> <li class="alt"><span>} </span></li> </ol>
Here is an example. Like the above, I defined a store class and extracted all its parts like buy, sell, view, and If these methods are implemented in the abstract class, then the subclass that inherits it will automatically obtain these methods, and the subclass will do its own unique things, introduce duplication of code, and improve reusability.
Conclusion: The PHP abstract class is a class of service provider with many services. You don’t have to use them. You can use them when needed. If you feel dissatisfied with not providing services, you can still You can do it yourself.