php 面向对象 接口和抽象类

接口

定义: 

interface  接口名{

public function  方法名();

}

class  类名 implement  接口名{

public function 方法名(){

//和接口中的一致

}

}

接口实例

<?php
interface People{
public function eat();
public function sleep();
}
class Man implements People{
public function eat(){
echo '吃吃吃次';
}
public function sleep(){
echo '睡睡睡';
}
}
class L{
public static function factory (People $user){
return $user;
}
}
$user=L::factory(new Man());
$user->eat();
$user->sleep();


抽象类

abstrct class 类名{

public function 方法名(){

}

}

class test extends 类名(){

$this->抽象类方法();

}


区别

  • 对接口的使用方式是通过关键字implements来实现的,而对于抽象类的操作是使用类继承的关键字extends实现的,使用时要特别注意。
  • 接口没有数据成员,但是抽象类有数据成员,抽象类可以实现数据的封装。
  • 接口没有构造函数,抽象类可以有构造函数。
  • 接口中的方法都是public类型,而抽象类中的方法可以使用private、protected或public来修饰。
  • 一个类可以同时实现多个接口,但是只能实现一个抽象类。
  • 抽象类中实现的方法不需要在子类中重新实现直接$this->方法()调用即可.但接口需要实现
  • 接口中都是空方法
  •  
  • 相同点:函数体内不能写任何东西,连两个大括号都不能写!!!如:function getName();这样就行了

版权声明:
作者:超级管理员
链接: https://apecloud.ltd/article/detail.html?id=45
来源:猿码云个人技术站
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
/static/admin/img/weixin.jpg/static/admin/img/zfb.jpg
<<上一篇>
php统计脚本内存消耗和运行时间
下一篇>>