前言
本章主要是学习了PHP语言后学到的知识,后面有一个有关继承抽象类和实现接口的小案例。
一、抽象类
关键字:abstract
1.类中只要有一个方法声明为abstract抽象方法,那么这个类就必须声明为抽象类;
2. 抽象方法只允许有方法声明与参数列表,不允许有方法体;
3.抽象类不能实例化,可以通过继承来实例化;
4.继承该抽象类的子类,必须要将所有抽象方法全部实现;
5.子类方法参数必须与抽象类方法参数完全一致,但允许增加默认参数。
注意!
Abstract 关键字同样可以用来声明抽象方法,抽象方法只包含一个方法名,而没有方法体。
抽象方法没有定义,方法名后面直接跟一个分号,而不是花括号。
二、接口
关键字:interface
1.接口也是一个抽象类型,和编写类很相似,但不能有变量,只能定义方法,也没有方法体。且实现该接口的所有方法。
2.接口不能包含成员变量,除了 static 和 final 变量
案例
描述:让一个类继承一个抽象类同时实现多个接口
<?php
header("Content-type:text/html;charset=utf-8");
abstract class peasant implements computer,chemistry,english{
abstract function working();
}
interface computer{
function computer();
}
interface chemistry{
function chemistry();
}
interface english{
function english();
}
class undergraduate extends peasant{
function working(){
echo "父亲劳动送我上学";
}
function computer(){
echo "我学的计算机";
}
function chemistry(){
echo "我学的化学";
}
function english(){
echo "我学的英语";
}
}
echo "<hr/>";
$s=new undergraduate();
echo $s->working()."<br>".$s->computer();
echo "<hr/>";
echo $s->working()."<br>".$s->chemistry();
echo "<hr/>";
echo $s->working()."<br>".$s->english();
?>