PHP抽象类基本用法示例

 更新时间:2018年12月28日 10:52:16   作者:徐三少北   我要评论

这篇文章主要介绍了PHP抽象类基本用法,结合实例形式分析了php抽象类的概念、原理、定义、使用方法及相关操作注意事项,代码注释包含较为详尽的说明信息,需要的朋友可以参考下

本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

相关文章

  • PHP使用递归算法无限遍历数组示例

    PHP使用递归算法无限遍历数组示例

    这篇文章主要介绍了PHP使用递归算法无限遍历数组,结合实例形式分析了php针对一维数组、二维数组及多维不规则数组的通用遍历技巧,需要的朋友可以参考下
    2017-01-01
  • php建立Ftp连接的方法

    php建立Ftp连接的方法

    这篇文章主要介绍了php建立Ftp连接的方法,实例分析了php操作FTP的相关函数及使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • Zend studio文件注释模板设置方法

    Zend studio文件注释模板设置方法

    这篇文章主要介绍了Zend studio中新建文件注释、函数注释、代码块等模板的实例
    2013-09-09
  • php实现利用phpexcel导出数据

    php实现利用phpexcel导出数据

    以下是对php中利用phpexcel导出数据的实现代码进行了介绍,需要的朋友可以过来参考下
    2013-08-08
  • php制作中间带自己定义图片二维码的方法

    php制作中间带自己定义图片二维码的方法

    本文为大家介绍下如何使用php制作中间带自己定义图片的二维码,需要的朋友可以参考下
    2014-01-01
  • PHP+Javascript实现在线拍照功能实例

    PHP+Javascript实现在线拍照功能实例

    这篇文章主要介绍了PHP+Javascript实现在线拍照功能的方法,涉及javascript插件的使用及php图片上传的相关实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • 20个PHP常用类库小结

    20个PHP常用类库小结

    下面是一些非常有用的PHP类库,相信一定可以为你的WEB开发提供更好和更为快速的方法。
    2011-09-09
  • PHP读写文件高并发处理操作实例详解

    PHP读写文件高并发处理操作实例详解

    这篇文章主要介绍了PHP读写文件高并发处理操作,结合实例形式较为详细的分析了php高并发访问读写操作相关处理操作技巧,需要的朋友可以参考下
    2018-03-03
  • php实现的微信红包算法分析(非官方)

    php实现的微信红包算法分析(非官方)

    这篇文章主要介绍了php实现的微信红包算法,以实例形式分析了拼手气红包的相关随机算法技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • HTML中嵌入PHP的简单方法

    HTML中嵌入PHP的简单方法

    这篇文章主要为大家详细介绍了HTML中嵌入PHP的简单方法,以一个实例实现php嵌入到html中,感兴趣的小伙伴们可以参考一下
    2016-02-02

最新评论