PHP 面向对象高级:抽象类
一、抽象类语法
abstract class 类名{
public $name;
abstract 访问权限修饰符 function 方法名1();
abstract 访问权限修饰符 function 方法名2();
访问权限修饰符 function 方法名3(){
... ... ;
}
}
1、类中至少有一个抽象方法
2、抽象方法不允许有{ }
3、抽象方法前面必须要加abstrac
二、抽象方法语法
abstract 访问权限修饰符 function 方法名1(参数列表);
abstract 访问权限修饰符 function 方法名2(参数列表);
1、不能被实例化,只能被继承
2、继承的派生类当中要把所有抽象方法重载才能实例化
三、基本概念
只要一个类里面有一个方法是抽象方法,那么这个类就必须定义为抽象类。
抽象类必须使用“abstract”关键字来修饰。
抽象类中可以包含非抽象方法外的 普通属性、方法。
抽象类中定义的非抽象成员属性和成员方法不需要子类中进行实现,只需实现抽象方法即可。
抽象类中的抽象方法,不能为私有的,不然子类中无法继承。
子类必须把父类中的抽象方法全部都实现,否则子类中还存在抽象方法(父类中的抽象方法),所以还是抽象类,也就不能实例化为对象。
四、代码示例
Man.php
:
<?php
namespace rock;
abstract class Man
{
public $name = '写代码的光头强';
abstract function title();
protected function demo(){
echo 321;
}
}
Wang.php
:
<?php
namespace rock;
include "Man.php";
class Wang extends Man
{
public function title(){
echo '爱写代码的光头强';
}
}
$obj = new Wang();
$obj->title();//输出:爱写代码的光头强