上面我们讲了类的基本使用,这次讲一下抽象类。
抽象类
我们每个人多多少少都会一项技能,比如张三会打篮球,李四会踢足球,那么我这个把这个技能的行为单独抽离出来,放到一个抽象类里,其他类实现这个类的时候,需要实现这个抽象的方法。例如:
abstract class Skill{
abstract function doSkill();
}
class Zhangsan extends Skill{
public function doSkill(){
echo "我是张三,会打篮球".PHP_EOL;
}
}
class Lisi extends Skill{
public function doSkill(){
echo "我是李四,会踢足球".PHP_EOL;
}
}
$zhangSan = new Zhangsan();
$liSi = new Lisi();
$zhangSan->doSkill();
$liSi->doSkill();
以上会输出如下内容:
我是张三,会打篮球
我是李四,会踢足球
注:抽象类,就是把某些人能做的事情和拥有的共同的属性放到一个抽象类中,比如上面代码中的Skill类,并且抽象类的类名必须前面使用abstract修饰,且里面的方法必须至少一个使用abstract修饰;抽象类是不能被直接被实例化的,如果你new Skill()会报错;继承抽象类的类必须实现抽象类中的abstract方法,比如上方的Zhangsan类继承(extends)Skill类,所以,必须在类中实现doSkill这个抽象方法!
今天就先写到这里,大家把这个面向对象前面这些先消化一下,这些都是重点,明天我会继续更新,也是OOP中的重点中的重点,即OOP三大特征:封装,继承,多态 的讲解!最重要的是多态,这里在很多系统架构中都会用到,说难其实也不难!就是一个用法而已![奸笑]