本篇文章是php中抽象类、接口和trait的一些内容,现在分享给大家,有需要的朋友也看以参考一下本篇文章的内容
抽象类
手册参考:http://php.net/manual/zh/language.oop5.abstract.php
定义:PHP 5 支持抽象类和抽象方法。定义为抽象的类不能被实例化。任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。且继承一个抽象类的时候,子类必须定义父类中的所有抽象方法(抽象类中可定义常量);
关键字 : abstract
getValue() . "\n";
}
}
class ConcreteClass1 extends AbstractClass
{
protected function getValue() {
return "ConcreteClass1".self::NAME;
}
public function prefixValue($prefix) {
return "{$prefix}ConcreteClass1";
}
}
$class1 = new ConcreteClass1;
$class1->printOut();
echo $class1->prefixValue('FOO_') ."\n";接口
关键字 : interface
interface test1{
function say();
}
interface test2{
function see();
}
//接口继承接口 (继承接口时使用extends关键字)
interface test3 extends test1,test2
{
function sleep();
}
//类实现接口(实现接口时使用 implements关键字)
class test implements test1,test2{
public function say(){}
public function see(){}
public function sleep()
{
echo '休息';
}
}
//接口中只能有抽象方法(不能定义常量,不能有构造方法,不能有普通方法),且接口类中所有未实现的方法需要在子类中全部实现
Trait 实现多继承
参考地址 https://www.cnblogs.com/smallrookie/p/6516010.html
定义:从PHP 5.4.0 开始 PHP 实现了一种新的代码复用方式。
smallTalk(); //b $obj->bigTalk(); //A $obj->talk();//B //trait不能实例化,不能有常量
相关推荐:










