如何在PHP中使用抽象类

这期内容当中小编将会给大家带来有关如何在PHP中使用抽象类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

具体如下:

如何在PHP中使用抽象类

<?php
//抽象类像一个模板,供子类扩展(重写),抽象类里有普通方法(有方法体),也有抽象方法,其中抽象方法没有方法体,且以分号结束。
//只要有一个抽象方法,那么此类必须定义为抽象类。
//抽象类不能创建自己的实例,在试图创建抽象类对象时,会产生一个致使错误。
//在子类里实现抽象类的方法,并且可见性要等于、高于抽象方法的可见性,抽象类(public|protected|private),子类(public|public,protected|有致命错误,且不能被继承)。
//抽象类不能定义私有方法,可以定义私有属性。
//如果子类没有扩展(重写)抽象类的抽象方法,会产生致使错误。
abstractclassEmployees{
protected$name=null;
function__construct($nameStr){
$this->name=$nameStr;
}
abstractpublicfunctionwork();
publicfunctionwork1(){
echo"<p>$this->name</p>";
}
//function__destruct(){}
}
classManagersextendsEmployees{
publicfunction__construct($nameStr){
parent::__construct($nameStr);
}
/*publicfunctionwork(){//如果子类没有扩展(重写)抽象类的抽象方法,会产生致使错误。
echo"<p>$this->nameisworking</p>";
}*/
}
//$obj1=newEmployees();//创建抽象类对象时,会产生一个致使错误。
$obj2=newManagers('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|有致命错误,且不能被继承)。
//抽象类不能定义私有方法,可以定义私有属性。
//如果子类没有扩展(重写)抽象类的抽象方法,会产生致使错误。
abstractclassEmployees{
protected$name=null;
function__construct($nameStr){
$this->name=$nameStr;
}
abstractpublicfunctionwork();
publicfunctionwork1(){
echo"<p>$this->name</p>";
}
//function__destruct(){}
}
classManagersextendsEmployees{
publicfunction__construct($nameStr){
parent::__construct($nameStr);
}
publicfunctionwork(){//如果子类没有扩展(重写)抽象类的抽象方法,会产生致使错误。
echo"<p>$this->nameisworking</p>";
}
}
//$obj1=newEmployees();//创建抽象类对象时,会产生一个致使错误。
$obj2=newManagers('e2');
$obj2->work();

测试运行结果:

e2 is working

上述就是小编为大家分享的如何在PHP中使用抽象类了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注恰卡编程网行业资讯频道。

发布于 2021-04-08 13:37:01
收藏
分享
海报
0 条评论
163
上一篇:SelectKey怎么在Mybatis中应用 下一篇:使用thinkPHP5框架如何连接数据库
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码