php抽象类定义和具体应用

抽象类(abstract class)就是定一个一个公共的基类,而将特定的细节留给继承者来实现。具体的说,当需要创建一个基础的对象的时候,创建所需的某些方法并没有完整定义出来时,就要用到抽象类。通过抽象概念可以让让项目架构拥有更好的扩展性。

例如:

<?php
abstract class AbstractClass
{
 
// 强制要求子类定义这些方法
    
abstract protected function getValue();
    abstract protected function 
prefixValue($prefix);
}

class 
ConcreteClass1 extends AbstractClass
{
    protected function 
getValue() {
        return 
"ConcreteClass1";
    }

    public function 
prefixValue($prefix) {
        return 
"{$prefix}ConcreteClass1";
    }


}

?>

由于抽象类没有为声明的所有方法定义实现内容,大家可能会将抽象类看作分部类。

抽象类可以不实现所有方法,它具有定义抽象方法的特殊能力,这些抽象方法只是缺少方法体的方法原型。当抽象类呗继承的时候这些方法将被实现。

然而抽象类不一定只有抽象方法,我们也可以定义具有完整实现体的方法,

例如:

abstract 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";
    }

public function view(){

//直接调用方法

return $this->printOut();   

}

    

}


可以把抽象类看成一个模版,继承抽象类,是去在模版里面加上更多内容,当需要修改很多使用这套模版的页面时,只用去修改模版本身即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值