| 网站首页 | 文章中心 | 电子书下载 | 矢量图库 | 视频教程 | 素材下载 | 程序代码下载 | JS代码 | 论坛 | 
常用软件类:
|杀毒安全 |联络聊天 |网络软件 |多媒体类 |系统工具 |图形图像 |系统工具 |应用软件 |行业软件
开发设计类:
|动画制作 |图像处理 |3D设计 |操作系统 |站长学院 |网络相关 |WEB设计 |数据库类 |程序开发
PHP5基础教程-类与对象之抽象类(Class Abstraction)
  PHP 5中引入了抽象类和抽象方法。不允许创建一个已经定义为abstract的类的一个实例。任何至少包含一个抽象方法的类也必须是抽象的。被定义为抽象的方法仅仅是声明方法的一个信号,并不能定义它们的实现。
当从一个抽象类继承时,在父类中所有抽象方法的标记的声明必须通过子类定义;另外,这些方法必须用定义相同的访问属性。例如,如果方法被定义为protected类型,执行函数必须定义为protected或public.
例子 19-16. 抽象类例子

PHP代码如下:
CODE:
<?php
abstract class 
AbstractClass
{   
// Force Extending class to define this method
    
abstract protected function getValue
();
    abstract protected function 
prefixValue($prefix
);
    public function 
printOut()  
// Common method
    
{   
        print 
$this->getValue()."n"
;
    }
}
class 
ConcreteClass1 extends 
AbstractClass
{   protected function getValue
()
    {  
        return 
"ConcreteClass1"
;  
    }
    public function 
prefixValue($prefix
)
    { 
        return 
"{$prefix}ConcreteClass1"

    }
}
class 
ConcreteClass2 extends 
AbstractClass
{   public function getValue
()
    {  
        return 
"ConcreteClass2"
;  
    }
    public function 
prefixValue($prefix
)
    { 
        return
"{$prefix}ConcreteClass2"
;
    }
}
$class1 = new ConcreteClass1
;
$class1->printOut
();
echo 
$class1->prefixValue('FOO_') ."n"
;
$class2 = new ConcreteClass2
;
$class2->printOut
();
echo 
$class2->prefixValue('FOO_') ."n"
;
?> 

上例将输出:

CODE:
ConcreteClass1
FOO_ConcreteClass1
ConcreteClass2
FOO_ConcreteClass2

旧代码拥有非用户自定义的命名为abstract的类或函数将要运行如果没有被修改。
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 相关文章