php抽象类有什么用

php抽象类有什么用

内容导读

收集整理的这篇技术教程文章主要介绍了php抽象类有什么用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1861字,纯文字阅读大概需要3分钟

内容图文

抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。

抽象类是不完整的,它只能用作基类。在面向对象方法中,抽象类主要用来进行类型隐藏和充当全局变量的角色。 (推荐学习:PHP视频教程)

PHP 5 支持抽象类和抽象方法。定义为抽象的类不能被实例化。任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现。

继承一个抽象类的时候,子类必须定义父类中的所有抽象方法;另外,这些方法的访问控制必须和父类中一样(或者更为宽松)。

例如某个抽象方法被声明为受保护的,那么子类中实现的方法就应该声明为受保护的或者公有的,而不能定义为私有的。

此外方法的调用方式必须匹配,即类型和所需参数数量必须一致。

例如,子类定义了一个可选参数,而父类抽象方法的声明里没有,则两者的声明并无冲突。

这也适用于 PHP 5.4 起的构造函数。在 PHP 5.4 之前的构造函数声明可以不一样的。

抽象类示例

<?phpabstract class AbstractClass{ // 强制要求子类定义这些方法

abstract protected function getValue();

abstract protected function prefixValue($prefix);

// 普通方法(非抽象方法)

public function printOut() {



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";?>

以上例程会输出:

ConcreteClass1FOO_ConcreteClass1ConcreteClass2FOO_ConcreteClass2

以上就是php抽象类有什么用的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的php抽象类有什么用全部内容,希望文章能够帮你解决php抽象类有什么用所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。


本文关键词:

联系我们

在线咨询:点击这里给我发消息

邮件:w420220301@qq.com