面向对象的PHP,带有关键字Interface,extends,implements

在过去的几个月里,我在学习纯粹的oop方面走了很长的路,现在我正在将设计模式应用到我的工作中!所以我不得不扩展我的 PHP知识,我正在使用接口,扩展它们,然后为这些接口实现类.我的问题是关于从一个扩展另一个接口的接口构造一个类,例如:

interface Car
{
  function doGeneralCarStuff();
  vinNumber =;
}

interface CompactCar extends Car
{
   static $numCompactCars;
   function doCompactCarStuff();
}

class HondaCivic implements CompactCar
{
   function doGeneralCarStuff()
   {
     //honk horn , blink blinkers, wipers on, yadda yadda
   }

   function doCompactCarStuff()
   {
      //foo and bar and foobar
   }

}

class ToyotaCorolla implements CompactCar
{
   function doGeneralCarStuff()
   {
     //honk horn , blink blinkers, wipers on, yadda yadda
   }

   function doCompactCarStuff()
   {
      //foo and bar and foobar
   }

}


myCar = new HondaCivic();
myFriendCar = new ToyotaCorolla();

好的,现在让我说我想了解一下我的本田扩展的接口之一,即CompactCar接口.我想知道有多少紧凑型轿车($numCompactCars)已经创建.我是新手(对我来说很深:p)OOP,所以如果我没有正确地做这件事,请提供指导.非常感谢!

如果将“新车”存储在一个数组中,您可以轻松地遍历它们并检查是否实现了给定的接口.就像是:

$cars['myCar'] = new HondaCivic();
$cars['myFriendCar'] = new ToyotaCorolla();

$compact_counter = 0;
foreach ($cars as $car)
  if ($car instanceof CompactCar)
    $compact_counter ++;

$compact_counter将有多少紧凑型轿车已经实施.

相关文章
相关标签/搜索