您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
这期内容当中小编将会给大家带来有关如何在PHP中使用抽象类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
具体如下:
<?php //抽象类像一个模板,供子类扩展(重写),抽象类里有普通方法(有方法体),也有抽象方法,其中抽象方法没有方法体,且以分号结束。 //只要有一个抽象方法,那么此类必须定义为抽象类。 //抽象类不能创建自己的实例,在试图创建抽象类对象时,会产生一个致使错误。 //在子类里实现抽象类的方法,并且可见性要等于、高于抽象方法的可见性,抽象类(public|protected|private),子类(public|public,protected|有致命错误,且不能被继承)。 //抽象类不能定义私有方法,可以定义私有属性。 //如果子类没有扩展(重写)抽象类的抽象方法,会产生致使错误。 abstract class Employees{ protected $name = null; function __construct($nameStr){ $this->name = $nameStr; } abstract public function work(); public function work1(){ echo "<p>$this->name</p>"; } //function __destruct(){} } class Managers extends Employees{ public function __construct($nameStr){ parent::__construct($nameStr); } /*public function work(){//如果子类没有扩展(重写)抽象类的抽象方法,会产生致使错误。 echo "<p>$this->name is working</p>"; }*/ } //$obj1 = new Employees();//创建抽象类对象时,会产生一个致使错误。 $obj2 = new Managers('e2'); //$obj2->work();
运行上述代码,会提示如下错误信息:
Fatal error: Class Managers contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Employees::work) in D:\phproot\test\ClassDemo.php on line 26
将错误提示位置及末尾位置代码注释删除后,改为如下代码:
<?php //抽象类像一个模板,供子类扩展(重写),抽象类里有普通方法(有方法体),也有抽象方法,其中抽象方法没有方法体,且以分号结束。 //只要有一个抽象方法,那么此类必须定义为抽象类。 //抽象类不能创建自己的实例,在试图创建抽象类对象时,会产生一个致使错误。 //在子类里实现抽象类的方法,并且可见性要等于、高于抽象方法的可见性,抽象类(public|protected|private),子类(public|public,protected|有致命错误,且不能被继承)。 //抽象类不能定义私有方法,可以定义私有属性。 //如果子类没有扩展(重写)抽象类的抽象方法,会产生致使错误。 abstract class Employees{ protected $name = null; function __construct($nameStr){ $this->name = $nameStr; } abstract public function work(); public function work1(){ echo "<p>$this->name</p>"; } //function __destruct(){} } class Managers extends Employees{ public function __construct($nameStr){ parent::__construct($nameStr); } public function work(){//如果子类没有扩展(重写)抽象类的抽象方法,会产生致使错误。 echo "<p>$this->name is working</p>"; } } //$obj1 = new Employees();//创建抽象类对象时,会产生一个致使错误。 $obj2 = new Managers('e2'); $obj2->work();
测试运行结果:
e2 is working
上述就是小编为大家分享的如何在PHP中使用抽象类了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。