文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>类与对象(PHP5)之抽象类(Class Abstraction)

类与对象(PHP5)之抽象类(Class Abstraction)

时间:2007-02-18  来源:PHP爱好者

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";
?>  php爱好者站 http://www.phpfans.net 文章|教程|下载|源码|论坛.
上例将输出:

CODE:
ConcreteClass1
FOO_ConcreteClass1
ConcreteClass2
FOO_ConcreteClass2

旧代码拥有非用户自定义的命名为abstract的类或函数将要运行如果没有被修改。
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载