php入门教程(十八) php抽象类与接口

发布时间:2019-07-22编辑:脚本学堂
本文是php入门教程第十八节的内容,介绍下php抽象类与接口的相关内容,有需要的朋友参考学习下。

本节内容:
php抽象类与接口

什么是抽象类?
1. 如果一个类中,有一个方法是抽象的则这个类就是抽象类
2. 如果一个类是抽象类,则这个类必须要使用abstract修饰
3. 抽象类是一种特殊的类,就是因为一个类中有抽象方法,其他不变。也可以在抽象类中声明成员属性,常量,非抽象的方法。
4. 抽象类不能实例化对象(不能通过抽象类去创建一个抽象类的对象)

一、抽象方法没有方法体,不知道做什么的(没写功能)
二、对象中的方法和属性都要通过对象来访问,除常量和静态的变量和方法, 而抽象类又不能创建对象,抽象类中的成员都不能直接访问

例子:
 

复制代码 代码示例:
<?php
/**
* php抽象类示例
* by www.jb200.com
*/
abstract class Demo { 
    var $name; 
    var $age; 
   
    abstract function test(); 
    abstract function fun(); 
 
    function say(){ 
        echo "gogogooggogo"; 
    } 
 
    function run(){ 
     
    } 

 
class Hello extends Demo { 
    function test() { 
        echo "子类要完成的任务1"; 
    } 
    function fun(){ 
        echo "了类中另一个实现"; 
    } 

 
$h=new Hello; 
 
$h->test(); 

2,接口
接口和抽象类是一样的作用
 
因为在PHP是单继承的, 如果使用抽象类,子类实现完抽象类就不能再去继承其它的类了。
 
如果即想实现一些规范, 又想继承一个其他类。就要使用接口

接口和抽象类的对比
1. 作用相同,都不能创建对象, 都需要子类去实现
2. 接口的声明和抽象类不一样
3. 接口被实现的方式不一样
4. 接口中的所有方法必须是抽象方法,只能声明抽象方法(不用使用abstract修饰)
5. 接口中的成员属性,只能声明常量,不能声明变量
6. 接口中的成员访问权限 都必须是public, 抽象类中最低的权限protected
 
例子:
 

复制代码 代码示例:
<?php
/**
* php接口的例子
* by www.jb200.com
*/
  interface dome { 
      function test1(); 
  function test2(); 
  } 
 
 
 class One implements dome{ 
    function test1(){ 
    echo "wwwwwwwwwwwwwwww<br>"; 

 
function test2(){ 
    echo "eeeeeeeeeeeeeeeee<br>"; 

 } 
 
 class Two implements dome { 
    function test1(){ 
    echo "66666666666666666<br>"; 

 
function test2(){ 
    echo "88888888888888888<br>"; 

 } 
   
$a=new Two; 
 
$a->test1(); 
$a->test2();

>>> 查看更多 php入门教程 <<<