<?php
/*
使用abstract修饰的法,称为抽象类或者抽象方法。抽象类不能被直接实例化,只能作为其他类的父类来使用。抽象方法只是声明了其调用方式(参数),不能
定义其具体的功能实现。子类可以继承它并通过实现其中的抽象方法,来使抽象类具体化
任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么该类就必须被声明为抽象的。抽象类可以像普通类那样去声明,但必须以分号而不是方法体结束。
抽象方法只有方法的声明部分,没有方法体。继承一个抽象类的时候,父类中的所有抽象方法在子类中必须被重写;另外,这些方法的访问控制必须和父类中一样(或者更为宽松)。例如某个抽象方法被声明为受保护的,那么子类中实现的方法就应该声明为受保护的或者公有的,而不能定义为私有的。此外方法的调用方式必须匹配,即类型和所需参数数量必须一致。
*/
abstract class Test //定义了抽象类
{
abstract protected function getValue();//定义了抽象类
abstract protected function prin($P);//定义了抽象类
//普通方法(非抽象方法)
public function printOut(){
print $this->getValue();
}
}
class Test1 extends Test{//定义子类,继承抽象类
protected function getValue(){//重写方法
return "重写抽象方法1!<br>";
}
public function prin($p){
return "{$p}重写抽象方法2!";
}
}
$class1=new Test1;//实例化子类
$class1->printOut();//调用方法
echo $class1->prin('FOO_');//调用方法
php->abstract类和方法
最新推荐文章于 2024-05-06 18:16:21 发布