php抽象类定义
抽象类和接口相似,都是比较特殊的类。抽象类也是特殊一种类,接口是一种特殊的抽象类。他们的作用在理解上会困难一点。想要理解抽象类先要理解抽象方法,在面向对象的编程语言中,一个类可以很多子类,而每一个类中至少有一个公共方法作为外部访问的它(父类)的接口,为了方便类之前继承就引入了抽象方法。
什么是php抽象方法?
抽象方法是没有方法体的方法,没有方法体是指方法声明时没有花括号以及其中的内容,而是声明方法时直接在方法名后加上分号结束,声明抽象方法要使用abstract关键字修饰。声明抽象方法格式:abstract function();
什么是php抽象类?
只要声明抽象方法的类就是抽象类,抽象类也要使用abstract关键字修饰,抽象类中可以有不是抽象方法的方法和成员属性,但访问权限不能是私有(private关键字修饰的)
要点:
* 只要声明抽象方法的类就是抽象类,抽象类也要使用abstract关键字修饰
* 出了在抽象类中可以有抽象方法外,和正常的类完全一样
* 抽象类中可以有不是抽象方法的方法和成员属性
* 抽象类不能实例化
* 子类必须重写父类的所有抽象方法,否则这个子类还是抽象类
index.php
<?php /** * 只要声明抽象方法的类就是抽象类,抽象类也要使用abstract关键字修饰 * 出了在抽象类中可以有抽象方法外,和正常的类完全一样 * 抽象类中可以有不是抽象方法的方法和成员属性 * 抽象类不能实例化 * 子类必须重写父类的所有抽象方法,否则这个子类还是抽象类 */ include 'car.php'; // 报错,抽象类不能实例化 // $car = new car(); // $car2 = new car2(); $bus = new bus(); $bus->my_car(); $bus->getName();
car.php
<?php abstract class car { public $name = '宝马'; abstract function my_car(); function getName() { echo $this->name; } } class bus extends car { function my_car() { echo '使用了my_car抽象类<br />'; } } // 一个没有抽象方法的抽象类 abstract class car2 { public $name = 1; function car2_fun() { echo '函数'; } }