php 接口类:interface 和 抽象类 : abstract

1.php 接口类:interface
当我们定义了一个接口类时,它里面的方式是下面的子类必须实现的,比如 :

代码如下:
interface Shop
{
public function buy($gid);
public function sell($gid);
public function view($gid);
}

我声明一个shop接口类,定义了三个方法:买(buy),卖(sell),看(view),那么继承此类的所有子类都必须实现这3个方法少一个都不行,如果子类没有实现这些话,就无法运行。

代码如下:
class BaseShop implements Shop
{
public function buy($gid)
{
echo(‘你购买了ID为 :’.$gid.’的商品’);
}
public function sell($gid)
{
echo(‘你卖了ID为 :’.$gid.’的商品’);
}
public function view($gid)
{
echo(‘你查看了ID为 :’.$gid.’的商品’);
}
}

结论 : 接口使用关键字implements继承,子类必须完成它指定方法。 一个类可以继承多个接口;接口中的方法默认是public的,也只能是public的,不能用private、protected修饰符修饰;继承接口时必须实现接口的所有方法
2.php 抽象类 : abstract

代码如下:
abstract class BaseShop
{
abstract function buy($gid)

public function sell($gid)
{
echo(‘你卖了ID为 :’.$gid.’的商品’);
}
public function view($gid)
{
echo(‘你查看了ID为 :’.$gid.’的商品’);
}
}

class BallShop extends BaseShop
{
var $itme_id = null;
public function __construct()
{
$this->itme_id = 2314;
}
public function open()
{
$this->sell($this->itme_id);
}
public function buy()
{
return 222;
}
}

结论:抽象类不能实例化,抽象类中定义为abstract 的方法不必实现具体功能,必须在子类中实现, 一个类只能继承一个抽象类。抽象类采用extends继承;继承抽象类时必须实现所有的抽象方法,而非抽象方法则不用

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注