【代码总结】PHP面向对象之抽象类
一、什么是抽象方法?
一个方法如果没有方法体(不使用"{}",直接使用分号结束的方法,才是没有方法体的方法),则这个方法就是抽象方法
1、声明一个方法,不使用{},而直接分号结束
2、如果是抽象方法,必须使用abstract(抽象关键字来修饰)
二、什么是抽象类
1、如果一个类中有一个方法是抽象的方法,则这个类就是抽象类
2、如果声明一个抽象类,则这个类必须使用abstract关键字修饰
<?php //声明一个抽象类,要使用abstract关键字识别 abstract class Person{ protected $name; protected $country; //在抽象类中声明一个没有方法体的抽象方法 abstract function say(); //在抽象类中可以声明正常的费抽象的方法 function run(){ echo '我正在走路'; //有方法体,输出一条语句 } } ?>
注意:
1、只要使用abstract修饰的类,就是抽象类
2、抽象类是一种特殊的类,在抽象类中可以有抽象方法
3、除了抽象类可以有抽象方法,意外,和正常的类完全一样
4、抽象类不能实例化对象
三、抽象方法的作用
1、抽象方法的作用就是规定了,子类必须有这个方法的实现,功能交给二子类
2、只写出来结构而没有实现,实现交给具体的子类去实现
<?php //声明一个抽象类,要使用abstract关键字识别 abstract class Person{ public $name; public $country; function __construct($name='',$country='China'){ $this ->name = $name; $this ->country = $country; } //在抽象类中声明一个没有方法体的抽象方法 abstract function say(); //在抽象类中可以声明正常的费抽象的方法 abstract function run(); } class student extends Person{ function say() { echo '我是中国人'; } function run() { echo '我正在跑步'; } } ?>
注意:
1、抽象类不能实例化对象(不能创建对象)
2、如果块钱按键抽象类,就必须写这个类的子类,将抽象类中的抽象方法覆盖(加上方法体)
3、子类不许全部实现(覆盖重写)抽象方法,这个子类才能创建对象,如果只实现部分,那么还有抽象方法,则类必须是抽象类
四、抽象类的作用
就是要求子类的结构,所以抽象类就是一个规范