php面向对象的抽象类

抽象类:                                                                 

总结特点:

1、关键字 abstract 

2、抽象类不能被实例化。

3、如果一个类中有抽象方法,那么该类必须被声明为抽象类。

4、抽象方法只是声明了其调用方式(参数),不能定义其具体的功能实现。就是不能有方法体{}的内容。

5、继承抽象类关键字:extends ,继承抽象类的子类,子类必须定义父类中所有的抽象方法,并且这些方法的控制权限必须大于等于(>=)父类的抽象方法,控制权限大小(public>protect>private)

示例代码:
<?php
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() {//因为抽象类控制权限是protect,所以子类控制权限可以是protect、public,不能是private
        return 
"ConcreteClass1";
    }
    public function 
prefixValue($prefix) {
        return 
"{$prefix}ConcreteClass1";
    }
}

$class1 = new ConcreteClass1;
$class1->printOut();
echo 
$class1->prefixValue('FOO_') ."\n";//FOO_ConcreteClass1
?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值